我需要支持两个独立的数据库引擎 - MySQL和SQL Server。如果可能的话,我不想维护两组不同的脚本来创建数据库对象(表,视图,存储过程等)。
我想知道是否有人有这样做的经验和学习内容。任何与相关文章/文件相关的链接也不胜感激。
我遇到的一些问题是 1. MySQl具有列的隐式默认值,而SQL Server没有 2. MySQL Timestamp列与SQL Server时间戳列不同 3. MySQL在不同数据库中引用对象的方式与SQL Server的方式不同 - differentdb.table(mysql)vs differentdb.dbo.table(sql server) 4.临时表创建语法在两个数据库引擎中是不同的
此列表并非详尽无遗:)
TIA
答案 0 :(得分:1)
解决方案是不使用任何SQL脚本来创建数据库对象,而是在应用程序和数据库之间使用某种抽象层:
有关更多信息,您可能需要查看维基百科条目Database abstraction layer。
不确定您使用的语言,但是,例如,在PHP中,ORM Framework Doctrine提供了Abstraction Layer。