2
我有一个使用Liquibase定义的Oracle/MySql/PostgreSql模式。我有一些插入语句。现在我想编写支持所有三个数据库的<insert>
标记,例如,如果它是MySql,它将使用自动递增功能和Oracle序列。我可以在不重复<insert>
标记的情况下达到此目的吗?Liquibase DB独立插入语句
我有一个使用Liquibase定义的Oracle/MySql/PostgreSql模式。我有一些插入语句。现在我想编写支持所有三个数据库的<insert>
标记,例如,如果它是MySql,它将使用自动递增功能和Oracle序列。我可以在不重复<insert>
标记的情况下达到此目的吗?Liquibase DB独立插入语句
其实我觉得这比想象的更痛苦。我相信你必须用不同的变更集来做到这一点。见How do I differentiate between databases when using e.g. sequence。
所以你会:
<changeSet id="x" author="y">
<preConditions>
<dbms type="oracle"/>
</preConditions>
...
</changeSet>
<changeSet id="xx" author="y">
<preConditions>
<dbms type="mysql"/>
</preConditions>
...
</changeSet>
<changeSet id="xxx" author="y">
<preConditions>
<dbms type="postgres"/>
</preConditions>
...
</changeSet>
要完全跨平台总是意味着你必须支持最小公分母在功能方面....你明白,使用自动增量意味着你不” t知道记录的主键,因此很难为变更集提供回滚逻辑? – 2012-07-06 23:56:28