これは、技術的には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
を含む)を大文字にしたことを特定しました )このリストから予約語として(誤って)識別されたため。これらのキーワードは、最初は削除されました
結果としてリストから削除されましたが、そのコミットはその後取り消されました
、AlexanderTurekが説明した理由
:
あなたの修正はきれいなプリンターを台無しにします!これはむしろアナライザーの問題です。
FIRSTとSTATUSは、MySQLコマンドの一部であるため、この予約語配列内にあります。STATUSは、「SHOWSTATUS」とALTERsytaxのFIRST部分で使用されます。
さらに、このバグは、justSTATUSやFIRSTよりもはるかに多くの単語に影響します。予約語の配列からすべてを削除するとどうなるか知りたくありません...
変更があったため、両方のクエリが適切に強調表示されなくなりました。
つまり、phpMyAdminは、予約語を検出する場合と同じ単語リストを使用して、きれいなプリンターで構文の強調表示を実行します。これは誤りであり、警告が表示されます。