0

私はmySQL(実際のもの用)とHSQLDB(テスト用)の両方でLiquibaseを実行しています。最近、Hibernateバージョンを更新する必要があり、HSQLDBバージョンを2.xxに更新する必要がありました。最新のものを使用しました。これで、以前は正常に実行されていたチェンジセットが少なくとも1つありますが、現在は次のようになっています。

SQLの実行中にエラーが発生しましたALTERTABLEapp_user DROP COLUMN name:列が参照されています:ステートメント[ALTER TABLE app_user DROPCOLUMNname]のPUBLIC.SYS_CT_10302

列「name」には、ドロップされるときに(別の列とともに)一意の制約があるため、これが問題であると思われます。ただし、一意の制約には名前がないため、最初に削除することもできませんでした。

4

1 に答える 1

2

UNIQUE制約の名前は、INFORMATION_SCHEMAを照会することで見つけることができます。

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
于 2012-04-09T11:50:45.983 に答える