При попытке изменить данные таблицы в MySQL Workbench 5.2.37 он находится в режиме только для чтения.
Его можно редактировать, только если у таблицы есть первичный ключ.
Есть ли какое-нибудь исправление для работы с таблицей без первичного ключа?
благодаря
В качестве одного из предложений я попробовал обновить WB 5.2.40. Но все же эта проблема существует .. Может ли кто-нибудь помочь, пожалуйста ..
mysql
mysql-workbench
ЭскалинНэнси
источник
источник
Ответы:
Я предполагаю, что у таблицы есть первичный ключ. Сначала попробуйте запустить команду разблокировки таблиц, чтобы увидеть, исправляет ли это ее.
Если ничего не помогает, вы можете изменить таблицу, чтобы создать новый столбец первичного ключа с автоматическим приращением, и это должно исправить это. Когда вы закончите, вы сможете удалить столбец без каких-либо проблем.
Как всегда, вы хотите сделать резервную копию, прежде чем менять таблицы. :)
Примечание. Инструментальные средства MySQL не могут работать без первичного ключа, если это ваша проблема. Однако, если у вас много таблиц, вы можете установить оба столбца в качестве первичных ключей, что позволит вам редактировать данные.
источник
если для таблицы не определен первичный ключ или уникальный не допускающий значения NULL, то рабочая среда MySql не сможет редактировать данные.
источник
Если вы установите схему по умолчанию для подключения к БД, тогда Select будет работать в режиме только для чтения, пока вы не установите явно свою схему
USE mydb; SELECT * FROM mytable
это также будет работать в режиме редактирования:
SELECT * FROM mydb.mytable
(MySql 5.2.42 / MacOsX)
Надеюсь, это поможет.
источник
Это известное ограничение в MySQLWorkbench (вы не можете редактировать таблицу без PK):
Чтобы отредактировать таблицу:
Метод 1: (метод не работает в некоторых случаях)
щелкните правой кнопкой мыши таблицу в обозревателе объектов и выберите оттуда параметр «Изменить данные таблицы».
Метод 2:
Я бы предпочел вместо этого добавить первичный ключ:
ALTER TABLE `your_table_name` ADD PRIMARY KEY (`column_name`);
и вы можете сначала удалить существующие строки:
Truncate table your_table_name
источник
При наведении курсора на значок «только для чтения» в рабочей среде mysql отображается всплывающая подсказка, объясняющая, почему ее нельзя редактировать. В моем случае было сказано, что можно редактировать только таблицы с первичными ключами или уникальными столбцами, не допускающими значения NULL.
источник
В MySQL Workbench вам нужен ИНДЕКС для редактирования, не обязательно, чтобы он был PK (хотя добавление PK также является решением).
Вы можете сделать обычный ИНДЕКС или составной ИНДЕКС. Это все, что нужно MySQL WB, чтобы исправить ошибку только для чтения (у меня v. 6.2 с MariaDB v. 10.1.4):
Просто щелкните таблицу правой кнопкой мыши, выберите «Изменить таблицу ...», затем перейдите на вкладку «Индексы». На левой панели введите собственное имя для вашего индекса, а на средней панели отметьте одно (убедитесь, что значение будет уникальным) или несколько полей (просто убедитесь, что комбинация уникальна)
источник
У меня возникала проблема только для чтения, даже когда я выбирал первичный ключ. В конце концов я понял, что это проблема с корпусом. Очевидно, столбец PK должен иметь такой же корпус, как определено в таблице. использование: Workbench 6.3 в Windows
Только чтение
ВЫБЕРИТЕ leadid, firstname, lastname, datecreated FROM lead;
Разрешено редактировать
ВЫБЕРИТЕ LeadID, имя, фамилию, дату создания ИЗ лида;
источник
Согласно этой ошибке , проблема была исправлена в Workbench 5.2.38 для некоторых людей и, возможно, в 5.2.39 для других - можете ли вы выполнить обновление до последней версии (5.2.40)?
В качестве альтернативы можно использовать следующее:
SELECT *,'' FROM my_table
источник
SELECT *, CONCAT('','') FROM my_table
. Возможно, это сработает для вас?Руководствуясь сообщением Манитобы, я нашел другое решение. Итак, решения следующие:
С помощью команды USE
USE mydb; SELECT * FROM mytable
С явным префиксом схемы:
SELECT * FROM mydb.mytable
GUI
На панели «SCHEMAS» обозревателя объектов все значки базы данных изначально не подсвечиваются, если у вас возникла такая же проблема. Таким образом, вы можете щелкнуть правой кнопкой мыши значок базы данных, которую вы хотите использовать по умолчанию, и выбрать «Установить как схему по умолчанию».
источник
1.) Вы должны сделать первичный ключ уникальным, тогда вы сможете редактировать.
Щелкните правой кнопкой мыши по таблице в "синих" схемах -> ALTER TABLE, найдите свой ключ для начинающих (PK), затем просто установите флажок UN, AI уже должен быть отмечен. После этого просто примените, и вы сможете редактировать данные таблицы.
2.) Вам также необходимо включить первичный ключ в ваш оператор выбора
№ 1 на самом деле не нужен, но это хорошая практика.
источник
Если в вашем запросе есть какие-либо соединения, Mysql Workbench не позволит вам изменить таблицу, даже если все ваши результаты взяты из одной таблицы.
Например, следующий запрос
SELECT u.* FROM users u JOIN passwords p ON u.id=p.user_id WHERE p.password IS NULL;
не позволит вам редактировать результаты или добавлять строки, даже если результаты ограничены одной таблицей. Вы должны сделать что-то вроде:
SELECT * FROM users WHERE id=1012;
а затем вы можете редактировать строку и добавлять строки в таблицу.
источник
SELECT u.* FROM users u WHERE u.id IN (SELECT user_id FROM passwords WHERE p.password IS NULL);
Снимите отмеченную галочку, это позволит редактировать сетку
источник
MySQL будет работать в режиме только для чтения, когда вы выполняете выборку путем объединения двух таблиц, и столбцы из двух таблиц включаются в результат. Тогда вы не сможете напрямую обновить значения.
источник
Да, я обнаружил, что MySQL также не может редактировать таблицы результатов. Обычно таблицы результатов, соединяющие другие таблицы, не имеют первичных ключей. Я слышал, что другие предлагали поместить таблицу результатов в другую таблицу, но лучшим решением является использование Dbeaver, который может редактировать таблицы результатов.
источник