sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

¿Es el tipo y el estado una palabra reservada en MySQL?

Esto es, técnicamente, un error en 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 (

(la lista incluye 'STATUS' y 'TYPE' , que claramente no están en la página del manual a la que se hace referencia).

Error #948 identificó que phpMyAdmin en ese momento escribía en mayúscula ciertos nombres de columna (incluido STATUS ) debido a (erróneamente) ser identificado como palabras reservadas de esta lista; esas palabras clave fueron inicialmente eliminadas de la lista como resultado, pero esa confirmación fue posteriormente invertida , por las razones explicadas por Alexander Turek :

¡Tu solución estropea la impresora bonita! Esto es más bien un problema del analizador.

PRIMERO y ESTADO han estado dentro de esta matriz de palabras reservadas porque son parte de los comandos de MySQL. ESTADO se usa en "MOSTRAR ESTADO" y PRIMERA parte de la sintaxis ALTER.

Además, este error afecta a muchas más palabras además de ESTADO y PRIMERO. No quiero saber qué sucede si las quitamos todas de la matriz de palabras reservadas...

Debido a su cambio, ambas consultas ya no se resaltan bien.

Es decir, phpMyAdmin usa la misma lista de palabras para realizar el resaltado de sintaxis en su bonita impresora que para detectar palabras reservadas; esto es erróneo y conduce a las advertencias que observa.