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

Är typ och status ett reserverat ord i MySQL?

Detta är tekniskt sett ett fel i phpMyAdmin. Från 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 (

(listan innehåller 'STATUS' och 'TYPE' , som uppenbarligen inte finns på den refererade manualsidan).

Bug #948 identifierade att phpMyAdmin vid den tiden skrev vissa kolumnnamn med versaler (inklusive STATUS ) på grund av att (felaktigt) identifierats som reserverade ord från denna lista; dessa sökord borttogs från början från listan som ett resultat, men det åtagandet återfördes sedan , av skälen som förklaras av Alexander Turek :

Din fix förstör den vackra skrivaren! Det här är snarare ett analysproblem.

FIRST och STATUS har funnits i denna reserverade ordarray eftersom de är en del av MySQL-kommandon.STATUS används i "VISA STATUS" och FIRST delen av ALTER-sytaxen.

Dessutom påverkar denna bugg mycket fler ord än bara STATUS och FIRST. Jag vill inte veta vad som händer om man tar bort dem alla från den reserverade ordgruppen...

På grund av din ändring markeras inte båda frågorna väl längre.

Det vill säga, phpMyAdmin använder samma lista med ord för att utföra syntaxmarkering i sin vackra skrivare som för att upptäcka reserverade ord; detta är felaktigt och leder till de varningar du observerar.




  1. Applikationen org.eclipse.e4.ui.workbench.swt.E4Application kunde inte hittas i registret

  2. Kan inte importera databas genom phpmyadmin filstorlek för stor

  3. SQL Server Management Studio kopplades bort efter en period av inaktivitet

  4. är det möjligt att skapa en dubblett av ip i den här koden?