Mysql 如何在SQL中引用保留字,使其在所有通用数据库系统中都能工作?

Mysql 如何在SQL中引用保留字,使其在所有通用数据库系统中都能工作?,mysql,sql,sql-server,oracle,postgresql,Mysql,Sql,Sql Server,Oracle,Postgresql,假设我有一个带有“order”列的表调用“users”,我希望我的应用程序代码能够跨所有数据库系统工作 假设更改数据库架构是不切实际的。即使模式发生了更改,其中一个主数据库引擎也会出现另一个保留字,因此在数据库引擎更新时停止应用程序的工作 我宁愿不必处理SQL字符串来将它们转换为每个数据库的正确形式 ""部分与这个问题重叠 (“”是MySQL的参考问题。 )您必须对要支持的所有内容进行测试,因此“所有的数据库系统”实际上不是一个选项 更现实地说,您可以决定要支持哪种DBMS,编写一个SQL子集,

假设我有一个带有“order”列的表调用“users”,我希望我的应用程序代码能够跨所有数据库系统工作

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

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

""部分与这个问题重叠

(“”是MySQL的参考问题。
)

您必须对要支持的所有内容进行测试,因此“所有的数据库系统”实际上不是一个选项

更现实地说,您可以决定要支持哪种DBMS,编写一个SQL子集,让他们都满意,并使用自动化测试对其进行测试

例如,您可以考虑:

  • MySQL
  • 博士后
  • MS SQL Server
  • 神谕

我相信这些都支持ANSI双引号引用名称,因此如果您一直引用所有名称,那么您就不用担心一件事了。

您必须测试您将要支持的所有内容,因此“所有数据库系统”实际上不是一个选项

更现实地说,您可以决定要支持哪种DBMS,编写一个SQL子集,让他们都满意,并使用自动化测试对其进行测试

例如,您可以考虑:

  • MySQL
  • 博士后
  • MS SQL Server
  • 神谕

我相信这些都支持ANSI双引号引用名称,因此如果您一直引用所有名称,那么您就不用担心一件事了。

您必须测试您将要支持的所有内容,因此“所有数据库系统”实际上不是一个选项

更现实地说,您可以决定要支持哪种DBMS,编写一个SQL子集,让他们都满意,并使用自动化测试对其进行测试

例如,您可以考虑:

  • MySQL
  • 博士后
  • MS SQL Server
  • 神谕

我相信这些都支持ANSI双引号引用名称,因此如果您一直引用所有名称,那么您就不用担心一件事了。

您必须测试您将要支持的所有内容,因此“所有数据库系统”实际上不是一个选项

更现实地说,您可以决定要支持哪种DBMS,编写一个SQL子集,让他们都满意,并使用自动化测试对其进行测试

例如,您可以考虑:

  • MySQL
  • 博士后
  • MS SQL Server
  • 神谕


我相信这些都支持ANSI双引号引用名称,因此如果您一直引用所有名称,那么您就不用担心一件事了。

我所知道的任何数据库系统都不允许聪明到足以阅读文档的开发人员使用任意表名。您通常会将它们引用出来-即从SQL Server中的[Users]中选择*-请注意[]。据我所知,任何其他数据库中都存在类似的问题。因此,代码一开始就被认为是蹩脚的sql。@TomTom,那么我该如何编写sql以使其在所有数据库引擎上工作,在应用程序中为每个引擎使用不同的sql并不是一个好的理想。用swahiliISO标准写你的模式时使用双引号。祝你好运,每个人都实现了它,或者它是每个DBMS上的默认设置。@IanRingrose然后你编写简单的初学者SQL和/或没有复杂的方法,因为我发现其他10%占了我工作的50%。我所知道的任何数据库系统都不允许聪明到足以阅读文档的开发人员使用任意的表名。您通常会将它们引用出来-即从SQL Server中的[Users]中选择*-请注意[]。据我所知,任何其他数据库中都存在类似的问题。因此,代码一开始就被认为是蹩脚的sql。@TomTom,那么我该如何编写sql以使其在所有数据库引擎上工作,在应用程序中为每个引擎使用不同的sql并不是一个好的理想。用swahiliISO标准写你的模式时使用双引号。祝你好运,每个人都实现了它,或者它是每个DBMS上的默认设置。@IanRingrose然后你编写简单的初学者SQL和/或没有复杂的方法,因为我发现其他10%占了我工作的50%。我所知道的任何数据库系统都不允许聪明到足以阅读文档的开发人员使用任意的表名。您通常会将它们引用出来-即从SQL Server中的[Users]中选择*-请注意[]。据我所知,任何其他数据库中都存在类似的问题。因此,代码一开始就被认为是蹩脚的sql。@TomTom,那么我该如何编写sql以使其在所有数据库引擎上工作,在应用程序中为每个引擎使用不同的sql并不是一个好的理想。用swahiliISO标准写你的模式时使用双引号。祝你好运,每个人都实现了它,或者它是每个DBMS上的默认设置。@IanRingrose然后你编写简单的初学者SQL和/或没有复杂的方法,因为我发现其他10%占了我工作的50%。我所知道的任何数据库系统都不允许聪明到足以阅读文档的开发人员使用任意的表名。您通常会将它们引用出来-即从SQL Server中的[Users]中选择*-请注意[]。据我所知,任何其他数据库中都存在类似的问题。因此,代码一开始就被认为是蹩脚的sql。@TomTom,那么我该如何编写sql以使其在所有数据库引擎上工作,在应用程序中为每个引擎使用不同的sql并不是一个好的理想。用swahiliISO标准写你的模式时使用双引号。祝你好运,每个人都实现了它,或者它是每个DBMS上的默认设置。@IanRingrose然后你编写简单的初学者SQL和/或没有复杂的方法,因为我发现其他10%占了我工作的50%。