2011-12-01 16 views
11

Projektuję bazę danych. Teraz jest na MySQL, ale jutro może migrować na innym DBMS. Muszę więc uważać, aby nie używać słów zarezerwowanych (dla MySQL i ewentualnie dla innych DBMS) jako nazw pól. I nie chcę używać zastrzeżonego słowa jako nazw pól, zawijać w cudzysłowy lub nawiasy kwadratowe!Wszystkie zarezerwowane słowa każdego DBMS

Czy istnieje strona, na której mogę znaleźć wszystkie zarezerwowane słowa dla każdego DBMS? Lub przynajmniej dla najczęściej używanych. Byłoby wspaniale, gdyby istniało narzędzie, w którym umieściłoby się słowo, i które daje wszystkie DBMS, dla których jest słowem zastrzeżonym, jeśli takie istnieje.

Jeśli nie ma internetowego odnośnika lub narzędzia tego rodzaju, moglibyśmy przypomnieć listę linków dla stron zarezerwowanych słów każdego DBMS. Wielkie dzięki!

+0

Jeśli chcesz tylko uniknąć tego problemu, możesz po prostu użyć prefiksu dla nazw tabel, a prawie na pewno będziesz bezpieczny; po prostu bądź rozsądny i używaj krótkiego, unikając możliwych nazw paczek. – Viruzzo

+1

** PORADA **: używaj spodziewanego podkreślenia. Możesz po prostu uniknąć kolizji z zarezerwowanymi słowami, używając końcowego podkreślenia we wszystkich nazwach baz danych. Specyfikacja SQL wyraźnie obiecuje, że nigdy nie użyje końcowego znaku podkreślenia. Aby uzyskać szczegółowe informacje, patrz [moja odpowiedź na inne pytanie] (http://stackoverflow.com/a/19758863/642706). –

Odpowiedz

12

WOW ... Znalazłem to narzędzie online: Reserved Word Search.

Obowiązuje zarówno dla DBMS, jak i języków programowania. Wydaje się dość aktualny.

6

Tak. Znalazłem na tej stronie narzędzie on-line do sprawdzenia, czy wprowadzone słowo jest zastrzeżonym słowem SQL Server, MySQL, PostgreSQL, Oracle i DB2 itp .: SQL Reserved Words Checker.

Wygląda jednak na to, że jego dane nie zostały zaktualizowane do najnowszej wersji. Możesz odebrać słowa zarezerwowane dla najnowszej wersji innej bazy danych i zbudować własne "zastrzeżone słowo".

To jest oficjalna lista słowa zastrzeżone dla niektórych głównych bazach:

V $ RESERVED_WORDS słownik danych Widok zapewnia dodatkową informacje na temat wszystkich słów kluczowych, w tym, czy słowo kluczowe jest zawsze zarezerwowany lub zarezerwowany tylko dla określonych zastosowań. Więcej informacji można znaleźć w dokumencie Oracle Database Reference.

4

Oto kolejna strona, gdzie można sprawdzić, czy jakiś wyraz mecz zastrzeżone słowo w SQL Server, MySQL, PostgreSQL, Oracle, DB2, ANSI SQL lub ODBC:

SQL Reserved Word Checker

+0

Nie polecam tej usługi. Wypisuje * index * jako * Not Reserved * dla MySQL 5.0, ale [w instrukcji] (https://dev.mysql.com/doc/refman/5.0/en/reserved-words.html) jest wymieniony jako zarezerwowany . –

+0

Nie sądzę, że ta strona była od jakiegoś czasu aktualizowana. Na przykład, musiałem sprawdzić MySQL 5.5 i ma on tylko 5.0. Ponadto najnowsza wersja PostgreSQL wymieniona na stronie to 8. – tmarkiewicz