7

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

在此处输入图像描述

4

1 回答 1

13

从技术上讲,这是 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',显然不在参考手册页上)。

错误 #948发现当时 phpMyAdmin 将某些列名(包括STATUS)大写,因为(错误地)被识别为该列表中的保留字;结果,这些关键字最初从列表中删除,但随后该提交被撤销原因由 Alexander Turek 解释

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

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

此外,此错误影响的单词不仅仅是 STATUS 和 FIRST。我不想知道如果我们将它们全部从保留字数组中删除会发生什么......

由于您的更改,这两个查询都不再突出显示。

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

于 2013-05-16T17:05:28.417 回答