假设我有一个带有“订单”列的“用户”表格,我希望我的应用程序代码能够在所有数据库系统中运行。
假设更改数据库架构是不切实际的。即使模式发生了变化,其中一个主数据库引擎也会提出另一个保留字,因此在数据库引擎更新时停止应用程序工作。
我宁愿不必处理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的参考问题。 )
答案 0 :(得分:3)
你必须对你要支持的所有内容进行测试,因此“那里的所有数据库系统”都不是一个选择。
更实际的是,您可以决定要支持哪个DBMS,并编写他们满意的SQL子集,并使用自动化测试对其进行测试。
例如,您可以考虑:
我相信这些都支持引用名称的ANSI双引号,所以如果你一直引用所有名字,那么你可以少担心一件事。