【发布时间】:2010-07-11 17:04:51
【问题描述】:
我正在使用“标准”/“通用”SQL 编写查询,以便它可以在任何数据库(MySQL、Postgre 等)上运行。
我想使用 MySQL 的DATE_ADD()。在 Postgre 中,它会使用 '2001-01-01'::timestamp + '1 year'::interval; 之类的东西来完成。
是否有更“通用”的编写方式,以便在 MySQL 和 Postgre(或其他)上运行?
【问题讨论】:
-
尝试编写标准 SQL 通常是错误的。看看可用的数据库,看看你需要哪些功能,然后勇敢地选择一个满足你需求的数据库并针对它编写代码。有效地使用数据库所具有的特性。 “通用 SQL”通常是指慢速、不可维护的 SQL,仅适用于您测试过的两个数据库。
-
添加到 Mark 的评论中,如果您需要支持不同的数据库供应商 - 要么查看 ORM(交易编码简单性以获得性能),要么使用为每个数据库供应商定制的 SQL(更好的性能,更多的工作) .
标签: sql mysql postgresql