“类型”和“状态”是MySQL中的保留字吗?

时间:2013-05-16 16:49:46

标签: mysql phpmyadmin

我无法在MySQL手册中找到保留字的单词,但显然phpMyAdmin说它们是保留的:

enter image description here

1 个答案:

答案 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开始的,但该提交随后是reversedthe reasons explained by Alexander Turek

  

你的修复弄乱了漂亮的打印机!   这是一个分析器问题。

     

FIRST和STATUS一直在这个保留字数组中   因为它们是MySQL命令的一部分。   STATUS用于" SHOW STATUS"和第一部分   ALTER sytax。

     

此外,这个bug会影响更多的单词而不仅仅是   状态和第一。我不想知道如果我们会发生什么   从保留字数组中删除它们...

     

由于您的更改,两个查询都未突出显示   了。

也就是说,phpMyAdmin使用相同的单词列表在其漂亮的打印机中进行语法高亮,就像检测保留字一样;这是错误的,并导致你观察到的警告。