phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

O tipo e o status são uma palavra reservada no MySQL?


Isso é, tecnicamente, um bug no phpMyAdmin. De 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 (

(a lista inclui 'STATUS' e 'TYPE' , que claramente não estão na página de manual referenciada).

Bug #948 identificou que o phpMyAdmin naquele momento colocou em maiúscula certos nomes de coluna (incluindo STATUS ) por (erroneamente) ter sido identificado como palavras reservadas desta lista; essas palavras-chave foram inicialmente removidas da lista como resultado, mas esse commit foi posteriormente invertido , para os motivos explicados por Alexander Turek :

Sua correção atrapalha a impressora bonita! Este é um problema do analisador.

FIRST e STATUS estão dentro deste array de palavras reservadas porque são parte dos comandos do MySQL. STATUS é usado em "SHOW STATUS" e FIRST parte do sytax ALTER.

Além disso, esse bug afeta muito mais palavras do que apenasSTATUS e FIRST. Eu não quero saber o que acontece se você remover todas elas do array de palavras reservadas...

Devido à sua alteração, ambas as consultas não são mais bem destacadas.

Ou seja, o phpMyAdmin usa a mesma lista de palavras para realizar o realce de sintaxe em sua impressora bonita como faz para detectar palavras reservadas; isso é errôneo e leva aos avisos que você observa.