it-swarm.com.ru

MySQL Workbench Edit Table Данные только для чтения

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

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

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

Спасибо

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

58
EscalinNancy

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

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

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

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

55
Thomas B

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

23
Tarun Singhal

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

USE mydb;
SELECT * FROM mytable

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

SELECT * FROM mydb.mytable 

(MySql 5.2.42/MacOsX)

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

11
Manitoba

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

Чтобы отредактировать таблицу:

Метод 1: (метод не работает в некоторых случаях)
Щелкните правой кнопкой мыши таблицу в Обозревателе объектов и выберите из нее параметр Изменить данные таблицы. 

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

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

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

Truncate table your_table_name
5
JerryGoyal

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

Вы можете сделать обычный ИНДЕКС или составной ИНДЕКС. Это все, что нужно MySQL WB для исправления только для чтения (у меня v. 6.2 с MariaDB v. 10.1.4):

Просто щелкните правой кнопкой мыши таблицу, выберите «Изменить таблицу ...» и перейдите на вкладку «Индексы». В левой панели введите пользовательское имя для индекса, а в средней панели отметьте одно (убедитесь, что хранилище будет уникальным) или несколько полей (просто убедитесь, что комбинация уникальна)

2
aesede

Если навести указатель мыши на значок «только для чтения» в MySQL, появится всплывающая подсказка, объясняющая, почему ее нельзя редактировать. В моем случае сказано, что редактировать могут только таблицы с первичными ключами или уникальные необнуляемые столбцы.

1
Tarun Garg

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

В качестве альтернативы можно обойти:

SELECT *,'' FROM my_table
1
eggyal

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

Только для чтения

ВЫБЕРИТЕ идентификатор, имя, фамилию, дату, созданную СО; 

Разрешено редактировать

ВЫБЕРИТЕ LeadID, имя, фамилию, дату, созданную ОТ лидерства; 

1
Quad9x

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

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

2.) Вы также должны включить первичный ключ в ваше заявление выбора 

№ 1 на самом деле не является необходимым, но хорошая практика.

0
Degar007

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

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

0
Keith Tyler

Руководствуясь постом Манитобы, я нашел другое решение. Таким образом, решения:

  1. С командой USE

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

    SELECT * FROM mydb.mytable
    
  3. Графический интерфейс пользователя

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

0
Earth Engine