我一直在运行Liquibase用于mySQL(用于真实的东西)和HSQLDB(用于测试)。我最近不得不更新我们的Hibernate版本,这需要我将我们的HSQLDB版本更新到2.x.x - 我选择了最新版本。现在我至少有一个运行良好的变更集,但现在给了我:
执行SQL ALTER TABLE时出错app_user DROP COLUMN name:column is 引用于:PUBLIC.SYS_CT_10302语句[ALTER TABLE app_user DROP COLUMN名称]
列“name”在删除时对它(以及另一列)有唯一约束,所以我怀疑这是问题所在。但是,唯一约束没有名称,所以我没有任何成功,首先放弃它。
答案 0 :(得分:2)
您可以通过查询INFORMATION_SCHEMA:
找到UNIQUE约束的名称SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE COLUMN_NAME = 'NAME' AND TABLE_NAME = 'APP_USER'
ALTER TABLE APP_USER DROP CONSTRAINT ...
或者,您可以将列与任何使用它的约束一起删除:
ALTER TABLE APP_USER DROP COLUMN NAME CASCADE