2011-12-01 79 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