如何在SQL中引用保留字以使其适用于所有常见数据库系统?

时间:2014-05-08 12:26:57

标签: mysql sql sql-server oracle postgresql

假设我有一个带有“订单”列的“用户”表格,我希望我的应用程序代码能够在所有数据库系统中运行。

假设更改数据库架构是不切实际的。即使模式发生了变化,其中一个主数据库引擎也会提出另一个保留字,因此在数据库引擎更新时停止应用程序工作。

我宁愿不必处理SQL字符串以将它们转换为每个数据库的正确形式。

' How to find if a column name is a reserved keyword across various databases'与这个问题部分重叠。

(' Syntax error due to using a reserved word as a table or column name in MySQL'是MySQL的参考问题。 )

1 个答案:

答案 0 :(得分:3)

你必须对你要支持的所有内容进行测试,因此“那里的所有数据库系统”都不是一个选择。

更实际的是,您可以决定要支持哪个DBMS,并编写他们满意的SQL子集,并使用自动化测试对其进行测试。

例如,您可以考虑:

  • MySQL的
  • 的Postgres
  • MS SQL Server
  • 甲骨文

我相信这些都支持引用名称的ANSI双引号,所以如果你一直引用所有名字,那么你可以少担心一件事。