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

IMB*_*IMB 6 mysql phpmyadmin

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

在此输入图像描述

egg*_*yal 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 (
Run Code Online (Sandbox Code Playgroud)

(列表包括'STATUS''TYPE',显然不在参考手册页上).

错误#948确定当时的phpMyAdmin将某些列名称(包括STATUS)大写,因为(错误地)被识别为此列表中的保留字; 这些关键字最初删除从列表中的结果,但承诺随后逆转,对亚历山大Turek的解释的原因:

你的修复搞砸了漂亮的打印机!这是一个分析器问题.

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

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

由于您的更改,两个查询都不再很好地突出显示.

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