sql >> Database >  >> Database Tools >> phpMyAdmin

Zijn type en status een gereserveerd woord in MySQL?

Dit is technisch gezien een bug in phpMyAdmin. Van 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 (

(lijst bevat 'STATUS' en 'TYPE' , die duidelijk niet op de handleidingpagina staan).

Bug #948 identificeerde dat phpMyAdmin op dat moment bepaalde kolomnamen met een hoofdletter had geschreven (inclusief STATUS ) vanwege (ten onrechte) geïdentificeerd zijn als gereserveerde woorden uit deze lijst; die zoekwoorden waren aanvankelijk verwijderd als resultaat uit de lijst, maar die commit werd vervolgens omgekeerd , voor de redenen uitgelegd door Alexander Turek :

Jouw oplossing brengt de mooie printer in de war! Dit is eerder een analyserprobleem.

FIRST en STATUS bevinden zich in deze array met gereserveerde woorden omdat ze deel uitmaken van MySQL-commando's.STATUS wordt gebruikt in "SHOW STATUS" en FIRST deel van de ALTER-sytax.

Verder treft deze bug veel meer woorden dan alleenSTATUS en FIRST. Ik wil niet weten wat er gebeurt als we ze allemaal uit de array met gereserveerde woorden verwijderen...

Door uw wijziging worden beide zoekopdrachten niet meer goed gemarkeerd.

Dat wil zeggen, phpMyAdmin gebruikt dezelfde lijst met woorden om syntax highlighting uit te voeren in zijn mooie printer als voor het detecteren van gereserveerde woorden; dit is onjuist en leidt tot de waarschuwingen die u waarneemt.




  1. Databasetabellen hernoemen met PhpMyAdmin

  2. U heeft geen toestemming om de bulkload-instructiefout te gebruiken

  3. Csv-datumwijzigingen importeren in 0000-00-00

  4. Hoe de geheugengrootte voor phpmyadmin te vergroten