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