我无法在MySQL手册中找到保留字的单词,但显然phpMyAdmin说它们是保留的:
答案 0 :(得分:12)
从技术上讲,这是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用于" SHOW STATUS"和第一部分 ALTER sytax。
此外,这个bug会影响更多的单词而不仅仅是 状态和第一。我不想知道如果我们会发生什么 从保留字数组中删除它们...
由于您的更改,两个查询都未突出显示 了。
也就是说,phpMyAdmin使用相同的单词列表在其漂亮的打印机中进行语法高亮,就像检测保留字一样;这是错误的,并导致你观察到的警告。