我有一个使用liquibase定义的oracle/mysql/postgresql模式。我有一些插入语句。现在我要编写支持所有三个dbs的<insert>
标记,这样如果它是mysql,它将使用auto increment特性,并为oracle编写sequence。我可以在不复制<insert>
标记的情况下实现这一点吗?
最佳答案
事实上,我觉得这比你想象的还要痛苦。我相信你必须用不同的变更集来实现这一点。见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>
关于mysql - Liquibase DB独立插入语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11354041/