я не могу найти их в словах, в руководстве MySQL для зарезервированных слов, но, по-видимому PHPMYADMIN говорит, что они защищены:Является ли «тип» и «статус» зарезервированным словом в MySQL?
ответ
Это технически ошибка в PhpMyAdmin. От libraries/sqlparser.data.php
:
/**
* words forbidden to be used as column or table name wihtout quotes
* as seen in http://dev.mysql.com/doc/mysql/en/reserved-words.html
*
* @global array MySQL forbidden words
*/
$PMA_SQPdata_forbidden_word = array (
(список включает в себя 'STATUS'
и 'TYPE'
, которые явно не на странице ссылочного вручную).
Bug #948 идентифицировал, что phpMyAdmin в это время заглавные буквы определенных имен столбцов (включая STATUS
) из-за (ошибочно) идентифицируется как зарезервированные слова из этого списка; эти ключевые слова были первоначально removed из списка в результате, но, выделяющих впоследствии reversed для the reasons explained by Alexander Turek:
Ваше исправление портит довольно-принтер! Это скорее проблема анализатора.
FIRST и STATUS находятся внутри этого зарезервированного массива слов , потому что они являются частью команд MySQL. STATUS используется в " ПОКАЗАТЬ СТАТУС " и ПЕРВУЮ часть ALTER sytax.
Кроме того, эта ошибка затрагивает гораздо больше слов, чем просто СТАТУС И ПЕРВЫЙ. Я не хочу знать, что произойдет, если мы с удалим их из зарезервированных слов ...
Из-за ваших изменений оба запроса не подсвечиваются хорошо .
То есть, phpMyAdmin использует тот же список слов для выделения синтаксиса в своем симпатичном принтере, как и для обнаружения зарезервированных слов; это ошибочно и приводит к предупреждениям, которые вы наблюдаете.
Действительно, ссылки на эти слова в руководстве отсутствуют. Но поскольку они являются словами, несущими «смысл», существуют ограничения на его использование. Я создал таблицы с ними, если это не мешает ему манипулировать ими, просто игнорируйте. – PiLHA
@PiLHA: Дело в том, что зарезервированные слова * не могут * использоваться как неуказанные идентификаторы SQL; тогда как эти слова * могут *. phpMyAdmin неверно указывать, что эти слова зарезервированы. – eggyal
@eggyal Насколько я знаю, как в SQLServer, так и в MySQL. Максимальное ограничение использования терминов заключается в том, чтобы добавить '' или [] и решить. Ошибка или нет, используйте. – PiLHA