phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

Le type et le statut sont-ils un mot réservé dans MySQL ?

Il s'agit, techniquement, d'un bogue dans phpMyAdmin. Depuis 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 liste inclut 'STATUS' et 'TYPE' , qui ne figurent clairement pas sur la page de manuel référencée).

Bug #948 identifié que phpMyAdmin à ce moment-là mettait en majuscule certains noms de colonnes (y compris STATUS ) en raison de leur identification (par erreur) comme mots réservés de cette liste ; ces mots clés ont été initialement supprimés de la liste en conséquence, mais ce commit a ensuite été inversé , pour les raisons expliquées par Alexander Turek :

Votre solution gâche la jolie imprimante ! Il s'agit plutôt d'un problème d'analyseur.

FIRST et STATUS se trouvent dans ce tableau de mots réservés car ils font partie des commandes MySQL. STATUS est utilisé dans "SHOW STATUS" et FIRST dans la syntaxe ALTER.

De plus, ce bogue affecte beaucoup plus de mots que juste STATUS et FIRST. Je ne veux pas savoir ce qui se passe si nous les supprimons tous du tableau des mots réservés...

En raison de votre modification, les deux requêtes ne sont plus bien mises en surbrillance.

C'est-à-dire que phpMyAdmin utilise la même liste de mots pour effectuer la coloration syntaxique dans sa jolie imprimante que pour détecter les mots réservés; ceci est erroné et conduit aux avertissements que vous observez.