2

我有一个使用 Liquibase 定义的 Oracle/MySql/PostgreSql 架构。我有一些插入语句。现在我想编写<insert>支持所有三个数据库的标签,这样如果它是 MySql,它将使用自动增量功能和 Oracle 的序列。我可以在不复制<insert>标签的情况下实现这一点吗?

4

1 回答 1

0

其实我觉得这比你想象的还要痛苦。我相信您必须使用不同的变更集来执行此操作。请参阅使用例如序列时如何区分数据库

所以你会有:

<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>
于 2013-10-30T19:24:55.993 回答