什么是"禁用" addUniqueConstraint的属性在Liquibase中意味着什么?

时间:2014-11-27 00:18:32

标签: mysql liquibase

我使用liquibase为MySQL表添加了一个唯一约束。在此Liquibase official document page中,有一个名为“disabled”的属性。我google了很多,找不到任何关于它的东西。有人可以帮忙吗?

请注意,文档页面中的示例说明了此liquibase脚本

<changeSet author="liquibase-docs" id="addUniqueConstraint-example">
<addUniqueConstraint catalogName="cat"
        columnNames="id, name"
        constraintName="const_name"
        deferrable="true"
        disabled="true"
        initiallyDeferred="true"
        schemaName="public"
        tableName="person"
        tablespace="A String"/>
</changeSet>

将为MySQL生成此sql

ALTER TABLE cat.person ADD CONSTRAINT const_name UNIQUE (id,
name);

所以我想知道如果我将脚本中的“禁用”更改为false会发生什么?

1 个答案:

答案 0 :(得分:1)

我认为使用mySQL时不会发生任何事情,因为它不支持这一点。

DISABLE似乎仅在使用Oracle数据库时使用。

我通过在liquibase来源的github上找到这个类来确定这一点:AddUniqueConstraintGenerator

签出generateSql方法。 DISABLE仅用于Oracle DB。

快速检查Oracles语法......似乎Oracle确实支持这种方式来启用或禁用约束。