这就是我的专栏的样子
<column name="name" type="VARCHAR(255)">
<constraints nullable="false" unique="true"/>
</column>
Run Code Online (Sandbox Code Playgroud)
我想删除unique=true约束.
我看了liquibase提供了什么,它有
<changeSet author="liquibase-docs" id="dropUniqueConstraint-example">
<dropUniqueConstraint catalogName="cat"
constraintName="const_name"
schemaName="public"
tableName="person"
uniqueColumns="A String"/>
</changeSet>
Run Code Online (Sandbox Code Playgroud)
既然constraintName是必需的,我没有它,我有什么选择?
我怎样才能unique=true使用liquibase?
小智 5
我最终创建了一个新列来替换具有唯一约束的列。
<addColumn tableName="TABLE" schemaName="SCHEMA">
<column name="NEW_COLUMN" type="TYPE" valueComputed="OLD_COLUMN"></column>
</addColumn>
<dropColumn tableName="TABLE" schemaName="SCHEMA" columnName="OLD_COLUMN"/>
<renameColumn tableName="TABLE" schemaName="SCHEMA" oldColumnName="NEW_COLUMN" newColumnName="OLD_COLUMN"/>
Run Code Online (Sandbox Code Playgroud)
Mic*_*ker -1
我认为你最好的选择是查询你的信息模式数据库以查找名称是什么,然后使用它通过 ChangeLog 删除它
这对我有用:
SELECT `CONSTRAINT_NAME`
FROM `TABLE_CONSTRAINTS`
WHERE `CONSTRAINT_TYPE` LIKE 'UNIQUE'
Run Code Online (Sandbox Code Playgroud)
当然,这将返回数据库中的每个唯一约束名称,但您应该能够从那里缩小搜索范围。
| 归档时间: |
|
| 查看次数: |
5689 次 |
| 最近记录: |