0

休止状態の永続クラスに文字列フィールドを追加し、アプリケーションを再起動しました。SchemaUpgrade が開始され、次のようないくつかのエラーが発生しました。

2011-02-03 13:04:06,522 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Unsuccessful: alter table table_name add index FKCD10932052C35B33 (previewExample_id), add constraint FKCD10932052C35B33 foreign key (previewExample_id) references preview (id)
2011-02-03 13:04:06,522 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Can't create table 'dbName.#sql-59c_1cc' (errno: 150)

ただし、列はDBに追加されました。そして、すべてがうまくいっているようです。毎回ポップアウトするエラー以外は、アプリケーションを起動します。

これらのインデックスを作成するにはどうすればよいですか? DB は MySQL、休止状態のバージョンは 3.0 です。

4

3 に答える 3

2

休止状態の問題のようには聞こえません。手動で実行しようとすると、同じ問題が発生することがわかります。MySQL のマニュアルを見ると、「errno: 150」は次の意味であることがわかります。

削除されたテーブルを再作成する場合は、それを参照する外部キー制約に準拠する定義が必要です。前述のように、正しい列名と型が必要であり、参照されるキーにインデックスが必要です。これらが満たされていない場合、MySQL はエラー番号 1005 を返し、エラー メッセージでエラー 150 を参照します。

http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

于 2011-02-03T11:37:02.537 に答える