有诸如可移植SQL之类的东西吗?
|
以我的经验,即使有SQL标准,也很难编写能够在大量RDBMS上运行且未经修改的SQL。
因此,我想知道是否有已知的SQL子集(包括DDL,架构等)可在所有主要的RDBMS上工作,包括PostgreSQL,MySQL,SQL Server以及最后但并非最不重要的Oracle。编写可移植SQL时应避免什么样的陷阱?
顺便说一句,是否有一个项目的目标是将有效的SQL子集转换为所有这些供应商使用的特定方言?我知道Hibernate和其他ORM系统必须执行此操作,但是我不希望ORM,而是要编写直接数据库SQL。
谢谢!
没有找到相关结果
已邀请:
5 个回复
脖呐
而且我什至没有考虑更高级的SQL标准,例如递归公用表表达式(即使那些支持它的表也不总是遵从)或窗口函数(有些只实现一个非常狭窄的子集,有些不支持所有选项) 。 关于DDL,数据类型存在问题。
与everywhere2 not并不一样。并非每个DBMS都具有
类型或
类型。 当涉及到约束或领域时,您会获得更多差异。 简而言之,除非您真的需要独立于DBMS,否则请不要理会它。 说了这么多:如果确实要在专有语法和标准语法之间进行选择,请选择标准语法(
vs
或
,
vs
,
vs..11ѭ,依此类推)。
容淑阔九
闪票仇门韧
贡炮逗握惫
需要标量子查询,因此处理很长,SQL Server早期提供专有的
语法,然后为SQL Server 2008提供了支持和扩展标准SQLѭ14的Standard14ѭ语法)。 根据经验,请在您的SQL产品支持的地方使用标准SQL代码(例如
而不是SQL Server的ѭ17prefer),否则请选择易于映射到标准SQL代码的专有代码(例如SQL Server的
轻松映射)到标准SQL的“ 18”(使用宏)。请注意,SQL标准以外的某些功能对于SQL产品来说是通用的(例如,大多数/全部将具有
函数或运算符)。
掏得透垦滩