Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


воскресенье, 29 сентября 2019 г.

MySQL Workbench: read-only результаты запроса и safe update

Иногда при выборке из таблицы, причем без всяких выкрутасов, результат получается только для чтения потому что "To edit table data, the SELECT statement must include the primary key column(s)"



Особенно это неприятно, когда в выборке есть именно эти поля и нет ничего лишнего. Возникает вопрос: а чего ему тогда надо? Оказывается, в этом месте MW очень чувствительна к регистру: имена ключевых полей должны быть записаны точно так же, как в описании таблицы, и если в ключе прописано поле, скажем, HARDWARE_ID, а в запросе - hardware_id, то, хотя с т.з. самого мускуля всё верно, но с т.з. MW есть ошибка.
I was getting the read-only problem even when I was selecting the primary key. I eventually figured out it was a casing problem. Apparently the PK column must be cased the same as defined in the table. using: workbench 6.3 on windows
Read-Only
SELECT leadid,firstname,lastname,datecreated FROM lead;
Allowed edit
SELECT LeadID,firstname,lastname,datecreated FROM lead;
Источник информации: https://stackoverflow.com/a/52103418/4250302

Теперь поговорим о безопасном обновлении. Иногда вылезает, и я даже не понял, кто это выдает - MW или мускуль, сообщение о том, что нельзя сделать большой апдейт таблицы, потому что включено безопасное обновление (safe update).
Обходим эту проблему просто:
1. перед запросом выполняем SET SQL_SAFE_UPDATES = 0;
2. выполняем запрос
3. выполняем (чтобы восстановить статус кво) SET SQL_SAFE_UPDATES = 1;
SET SQL_SAFE_UPDATES = 0;
your code SQL here
SET SQL_SAFE_UPDATES = 1;
Источник: https://stackoverflow.com/a/57683093/4250302

Комментариев нет:

Отправить комментарий

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