3

静的hasManygrailsの下のUserクラスで定義された多くの子テーブルを持つテーブルUserがあります。

grailsでUser.get(3).delete()を実行しても問題ありません。そのユーザーとそのすべての子テーブル行を自動的に削除します。しかし、MySQLワークベンチで同じ操作を実行したい場合。MySQLによってエラーがスローされます:

ERROR 1451: Cannot delete or update a parent row: a foreign key constraint fails (`test_db`.`search_stat`, CONSTRAINT `FK7A3CFFB6E64DB41` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`))
SQL Statement:
DELETE FROM `test_db`.`user` WHERE `id`='3'

ここでMySQLの問題が何であるかわかりません。

4

1 に答える 1

1

ドキュメントの「ONDELETECASCADE」についてどこで読みましたか?私はここでそれを見つけていません。この投稿の投稿者は、目的の動作を取得するために、これも手動で追加する必要がありました。

grailsが本当にこれを追加することになっている場合は、DBを削除して、(少なくとも開発環境で)grailsによって再作成してみましたか?たぶん、belongsToなどを追加する前に、現在のスキーマが生成されたのでしょうか。

hasManyとbelongsToに関するGORMGotchasに関するこのブログ投稿もチェックしてください。

于 2010-12-11T13:49:50.517 に答える