2011-12-01 5 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 Databaseリファレンス」の を参照してください。

4

ここではいくつかの単語の一致がSQL Serverのは、MySQL、PostgreSQLのは、Oracle、DB2、ANSI SQLまたはODBCで単語を予約しているかどうかを確認することができます別のページ、次のとおりです。

SQL Reserved Word Checker

+0

私はこのサービスをお勧めしません。 MySQL 5.0では* index *を* Not Reserved *と表示していますが(マニュアルでは)(https://dev.mysql.com/doc/refman/5.0/en/reserved-words.html)、予約済みとしてリストされています。 –

+0

私はこのサイトがしばらく更新されていないと思います。たとえば、MySQL 5.5を確認する必要があり、5.0しかありません。さらに、サイトに掲載されているPostgreSQLの最新バージョンは8です。 – tmarkiewicz

2

このDrupal.org siteは、部分的に作られたが、 800以上の単語のリスト。