nie mogę znaleźć tych słów w instrukcji MySQL słów zastrzeżonych ale widocznie phpMyAdmin mówi, że są zarezerwowane:Czy "typ" i "status" to zastrzeżone słowo w MySQL?
Odpowiedz
Jest to technicznie błąd w phpMyAdmin. Od 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 (
(lista obejmuje 'STATUS'
i 'TYPE'
, które wyraźnie nie są na wskazanej stronie podręcznika).
Bug #948 zidentyfikował, że phpMyAdmin w tym czasie użył wielkich liter niektórych nazw kolumn (w tym STATUS
) z powodu (błędnie) zidentyfikowanych jako słowa zastrzeżone z tej listy; te słowa kluczowe były początkowo removed z listy wyniku, ale to commit był następnie reversed dla the reasons explained by Alexander Turek:
Twój naprawić bałagan eleganckiego drukarkę! To raczej problem z analizatorem.
FIRST i STATUS znajdowały się wewnątrz tej tablicy słów zastrzeżonych , ponieważ są one częścią poleceń MySQL. STATUS jest używany w " SHOW STATUS " i PIERWSZA część ALTER sytax.
Co więcej, ten błąd dotyczy dużo więcej słów niż tylko STATUS i FIRST. Nie chcę wiedzieć, co się stanie, jeśli usuniemy je wszystkie z tablicy słów zastrzeżonych ...
Z powodu zmiany oba zapytania nie są już dobrze oznaczone .
Oznacza to, że phpMyAdmin używa tej samej listy słów do podświetlania składni w jej ładnej drukarce, tak jak robi to w celu wykrywania zarezerwowanych słów; jest to błędne i prowadzi do ostrzeżeń, które obserwujesz.
- 1. Czy „typ” słowo zarezerwowane w MySQL
- 2. JavaScript zastrzeżone słowo "zaprogramowany"
- 3. Używanie JSHint z Express.js/'delete' (słowo zastrzeżone)
- 4. Suppress `Oczekiwano identyfikatora i zamiast niego zobaczyłem 'default' (słowo zastrzeżone)` w JSLint z Mongoose
- 5. Czy null to słowo kluczowe Java?
- 6. Sprawdź, czy typ to interfejs
- 7. Go „to” -słowo kluczowe
- 8. Czy id to "typ root", czy tylko typ?
- 9. Matching to samo słowo dwukrotnie wyrażenie regularne, nie dbając o to, co to słowo jest
- 10. Kiedy oprogramowanie staje się "zastrzeżone"?
- 11. MySQL typ danych w bazie
- 12. Co to jest słowo "właściwość:" w atrybucie
- 13. MySQL - jak to zrobić lepiej?
- 14. Zastrzeżone nazwy z modelami ActiveRecord
- 15. Co to jest Typ w kancie 2?
- 16. Słowo kluczowe "to" w klasach abstrakcyjnych
- 17. Lucene.Net i status inkubacji
- 18. Jak określić typ bazy danych mysql: czy to InnoDB, czy MyISAM?
- 19. użycie "to" słowo kluczowe w C++
- 20. Uzyskaj typ zmiennej w MySQL
- 21. Wykryj, czy typ to std :: tuple?
- 22. czekaj (null) i czekaj (& status) Język C i status
- 23. Dlaczego jest 'to' słowo kluczowe nie rodzaj odniesienia w C++
- 24. Typ "i" poniżej w głównej(). Dlaczego to int i?
- 25. KORZYSTANIA słowo vs ON klauzuli - MySQL
- 26. C# plik tekstowy wyszukaj konkretne słowo i usuń cały wiersz tekstu, który zawiera to słowo
- 27. Typ danych MySQL DECIMAL
- 28. Czy jest to błąd sortowania MySQL?
- 29. Status zadania WaitingForActivation - co to znaczy?
- 30. Współbieżność MySQL, jak to działa i czy potrzebuję go obsłużyć w mojej aplikacji
Naprawdę nie ma odniesienia do tych słów w instrukcji. Ale ponieważ są to słowa, które noszą "znaczenie", istnieją ograniczenia w jego stosowaniu. Stworzyłem tabele z tymi, jeśli to nie przeszkadza mu manipulować nimi, po prostu zignoruj. – PiLHA
@PiLHA: Chodzi o to, że słowa zastrzeżone * nie mogą * być używane jako niecytowane identyfikatory SQL; te słowa * mogą *. phpMyAdmin jest niepoprawny, aby stwierdzić, że te słowa są zarezerwowane. – eggyal
@eggyal O ile wiem, zarówno w SQLServer, jak to się dzieje w MySQL. Maksymalnym ograniczeniem dla używania warunków jest dodanie "" lub [] i rozwiązanie. Błąd lub nie, użyj. – PiLHA