Grails GORM和MYSQL级联删除问题

时间:2010-12-09 16:43:37

标签: mysql grails gorm mysql-error-1451

我有一个表User,它在静态hasMany下的User类中定义了许多子表 的grails。

在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有什么问题。

1 个答案:

答案 0 :(得分:1)

您在哪里阅读了文档中的“ON DELETE CASCADE”?我还没找到它herethis post的海报必须手动添加它以获得所需的行为。

如果grails真的应该添加它,你是否尝试删除数据库并让它由grails重新创建(至少在开发环境中)?也许在添加belongsTo之前生成了当前架构?

另请查看this Blog post about GORM Gotchas regarding hasMany and belongsTo.