Подтвердить что ты не робот

Редактирование таблицы MySQL Workbench Данные только для чтения

При попытке изменить данные таблицы в MySQL Workbench 5.2.37, это только в режиме чтения.

Это редактируется, только если таблица имеет первичный ключ.

Есть ли какое-либо исправление для работы с таблицей без первичного ключа?

Спасибо

В качестве одного из предложений я попробовал обновить WB 5.2.40. Но эта проблема существует. Может ли кто-нибудь помочь, пожалуйста.

4b9b3361

Ответ 1

Я предполагаю, что в таблице есть первичный ключ. Сначала попробуйте запустить команду разблокировки таблиц, чтобы проверить, исправляет ли она это.

Если все остальное не удается, вы можете изменить таблицу, чтобы создать новый столбец первичного ключа с автоматическим приращением, и это, надеюсь, исправить. Как только вы закончите, вы сможете удалить столбец без каких-либо проблем.

Как всегда вы хотите сделать резервную копию, прежде чем изменять таблицы.:)

Примечание: Workbench MySQL не может работать без первичного ключа, если это проблема. Однако, если у вас много таблиц, вы можете установить оба столбца в качестве первичных ключей, которые позволят вам редактировать данные.

Ответ 2

если в таблице нет первичного ключа или уникального значения, отличного от NULL, тогда рабочая среда MySql не сможет редактировать данные.

Ответ 3

Если вы установили схему по умолчанию для своего соединения с БД, тогда Select будет работать в режиме readonly, пока вы не установите явно свою схему

USE mydb;
SELECT * FROM mytable

это также будет работать в режиме редактирования:

SELECT * FROM mydb.mytable 

(MySql 5.2.42/MacOsX)

Надеюсь, это поможет.

Ответ 4

Это Известное ограничение в MySQLWorkbench (вы не можете редактировать таблицу без PK):

Изменить таблицу:

Метод 1: (метод не работает в somecases)
щелкните правой кнопкой мыши по таблице в обозревателе объектов и выберите параметр "Редактировать данные таблицы".

Способ 2:
Я предпочел бы вместо вас добавить первичный ключ:

ALTER TABLE `your_table_name` ADD PRIMARY KEY (`column_name`);

и вы можете сначала удалить существующие строки:

Truncate table your_table_name

Ответ 5

В соответствии с эта ошибка, проблема была исправлена ​​в Workbench 5.2.38 для некоторых людей и, возможно, 5.2.39 для других — можете ли вы обновление до последней версии (5.2.40)?

В качестве альтернативы можно обходиться с помощью:

SELECT *,'' FROM my_table

Ответ 6

Наведение курсора на значок "только чтение" в workbench mysql показывает всплывающую подсказку, которая объясняет, почему его нельзя редактировать. В моем случае он сказал, что можно редактировать только таблицы с первичными ключами или уникальными столбцами, не допускающими нулевое значение.

Ответ 7

В MySQL Workbench вам нужен ИНДЕКС для редактирования, не нужно, чтобы он был PK (хотя добавление PK также является решением).

Вы можете сделать обычный INDEX или составной INDEX. Чтобы все MySQL WB нуждались в исправлении только для чтения (у меня есть версия 6.2 с MariaDB v. 10.1.4):

Просто щелкните правой кнопкой мыши, выберите "Изменить таблицу...", затем перейдите на вкладку "Индексы". На левой панели введите собственное имя для своего индекса, а в поле средней панели отметьте один (убедитесь, что vale будет уникальным) или больше полей (просто убедитесь, что комбинация уникальна)

Ответ 8

Руководствуясь по почте Manitoba, я нашел другое решение. В качестве сводки, решения:

  • С помощью команды USE

    USE mydb;
    SELECT * FROM mytable
    
  • С явным префиксом схемы:

    SELECT * FROM mydb.mytable
    
  • GUI

    На панели "SCHEMAS" обозревателя объектов все значки базы данных изначально не подсвечиваются, если у вас такая же проблема. Таким образом, вы можете щелкнуть правой кнопкой мыши по значку базы данных, который вы хотите по умолчанию, выбрать "Установить как схему по умолчанию".

Ответ 9

1.) Вы должны сделать первичный ключ уникальным, тогда вы должны иметь возможность редактировать.

щелкните правой кнопкой мыши по вашей таблице в "синих" схемах → ALTER TABLE, ищите свой ключ (PK), затем просто установите флажок, UN, AI уже должен быть проверен. После этого просто примените, и вы сможете редактировать данные таблицы.

2.) Вам также необходимо включить ключ primery I, который вы выбираете

Nr 1 действительно не требуется, но хорошая практика.

Ответ 10

Если ваш запрос имеет JOIN, 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;

а затем вы можете отредактировать строку и добавить строки в таблицу.