【问题标题】:How do you test a SQL statements across multiple Database types?如何跨多种数据库类型测试 SQL 语句?
【发布时间】:2012-08-03 14:59:13
【问题描述】:

有没有人知道一个快速简单的测试来查看查询的格式是否适用于 MySQL 和 MSSQL。也许还有其他数据库类型,例如 SQL Server?我目前只能访问 MySQL。

信息:我正在开发一个名为 JJWDesign Google Maps for SugarCRM 的开源项目。一些查询使用 SugarCRM 类;其他我必须写自定义。例如,有些是针对存储在表格中的地理编码信息的特殊距离计算。

http://www.sugarforge.org/projects/jjwgooglemaps/

【问题讨论】:

  • www.sqlfiddle.com 还不错。但是,实际上,您可能会发现一种万能代码的方法会损害功能和性能。更复杂的方法,即在不同 sql 平台上实现不同代码的抽象层,可能会产生更好的长期结果。
  • SugarCRM 确实有一个抽象层,但我不敢相信它。 DBManager.php(助手/管理器)。
  • 我刚开始搞乱 sqlfiddle.com。这肯定会有所帮助!谢谢德姆斯

标签: mysql sql sql-server sugarcrm


【解决方案1】:

更重要的是,虽然有一种公认的语法,但每种数据库都有自己的特定功能、特性和您可以做的事情。

您能做的最好的事情就是使用最基本的功能。与 mysql 和 db2 相比,Oracle 对 datetime 有不同的功能。虽然我很乐意协助“像啤酒一样免费”项目,但您确实需要检查每个功能,看看它是否在所有主要供应商中都相同。通用函数最常见,所以abs() 将相当一致,但其他人根本不会。

【讨论】:

  • 我正在使用一些 SQL 函数,例如 SQRT() 和 COS()。你认为这些会带来问题吗?
  • @jjwdesign 这真的取决于功能。检查您的函数,看看它们是否在您希望在项目中使用的所有数据库中以相同的格式被接受。
【解决方案2】:

您说的是 SQL 解析器,因此根据定义,它要么不会快速简单,要么只会进行最简单的检查。

每个 RDBMS 也有自己的 SQL 风格,因此您真的只能测试它是否是 ANSI SQL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    相关资源
    最近更新 更多