sql >> Databáze >  >> Database Tools >> phpMyAdmin

Je typ a stav vyhrazeným slovem v MySQL?

Toto je technicky chyba v phpMyAdmin. Z 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 (

(seznam obsahuje 'STATUS' a 'TYPE' , které zjevně nejsou na odkazované manuálové stránce).

Chyba č. 948 zjistil, že phpMyAdmin v té době používal velká písmena v určitých názvech sloupců (včetně STATUS ) kvůli (chybnému) označení jako vyhrazená slova z tohoto seznamu; tato klíčová slova byla původně odstraněna v důsledku toho ze seznamu, ale toto potvrzení bylo následně odvoláno , pro důvody, které vysvětlil Alexander Turek :

Vaše oprava kazí pěknou tiskárnu! Toto je spíše problém analyzátoru.

FIRST a STATUS byly uvnitř tohoto pole vyhrazených slov, protože jsou součástí příkazů MySQL. STATUS se používá v "SHOW STATUS" a FIRST části sytaxe ALTER.

Navíc tato chyba ovlivňuje mnohem více slov než jen STATUS a FIRST. Nechci vědět, co se stane, když je všechny přesuneme z pole vyhrazených slov...

Kvůli vaší změně již nejsou oba dotazy dobře zvýrazněny.

To znamená, že phpMyAdmin používá stejný seznam slov ke zvýrazňování syntaxe na své pěkné tiskárně jako k detekci rezervovaných slov; to je chybné a vede to k varováním, která pozorujete.




  1. Kde mohu zkontrolovat typ tabulky definované uživatelem v SQL Server 2008 v SSMS? a jak do něj mohu vložit nový sloupec?

  2. Jak VYBRAT posledních 10 řádků tabulky SQL, která nemá pole ID?

  3. Chyba phpMyAdmin:Chybí přípona mbstring. Zkontrolujte prosím konfiguraci PHP

  4. phpMyAdmin - Chyba:relační funkce jsou zakázány