2011-12-01 73 views
11

我正在設計一個數據庫。現在它在MySQL上,但明天可以在另一個DBMS上遷移。所以我必須注意不要使用保留字(對於MySQL和可能用於任何其他DBMS)作爲字段名稱。而且我不想使用保留字作爲字段名稱,用引號或方括號括起來!每個DBMS的所有保留字

是否有一個網站,我可以找到每個DBMS的所有保留字?或至少爲最常用的。如果存在一個放置單詞的工具,並且它爲您提供了所有DBMS(如果有的話)爲保留字,那將會很棒。

如果沒有這種在線參考或工具,我們可以爲每個DBMS的保留字頁面回憶一個鏈接列表。非常感謝!

+0

如果你只是想避免這個問題,你可以使用一些前綴的表名,你幾乎肯定是安全的;只是明智的,使用一個簡短的,避免可能的軟件包名稱。 – Viruzzo

+1

**提示**:使用尾部下劃線。您可以簡單地通過在所有數據庫名稱上使用尾部下劃線來避免與保留字的衝突。 SQL規範明確承諾永遠不要使用尾部下劃線。有關詳細信息,請參閱[我對另一個問題的回答](http://stackoverflow.com/a/19758863/642706)。 –

回答

12

WOW ...我發現這個在線工具:Reserved Word Search

它對於DBMS和編程語言都是有效的。看起來相當新。

6

是的。我發現這個網站有一個在線工具來檢查輸入的單詞是否是SQL Server,MySQL,PostgreSQL,Oracle和DB2等的保留字:SQL Reserved Words Checker

但是它的數據似乎沒有更新到最新版本。您可能會收集不同數據庫最新版本的保留字並建立您自己的「保留字」數據庫。

這是一些主要的數據庫官方保留字列表:

的V $ RESERVED_WORDS數據字典視圖提供了所有的關鍵字附加 信息,包括是否關鍵字始終保留 或僅保留用於特定用途。有關更多信息,請參閱 Oracle數據庫參考。

4

這裏是另一個頁面,在那裏你可以檢查,如果在SQL Server,MySQL和PostgreSQL,甲骨文,DB2,ANSI SQL或ODBC一些字匹配的保留字:

SQL Reserved Word Checker

+0

我不推薦這項服務。它列出*索引*爲*非保留*爲MySQL 5.0,但[在手冊](https://dev.mysql.com/doc/refman/5.0/en/reserved-words.html)它被列爲保留。 –

+0

我不認爲這個網站已經更新了一段時間。例如,我需要檢查MySQL 5.5,它只有5.0。另外,網站上列出的最新版本的PostgreSQL是8。 – tmarkiewicz