sequelize级联删除
环境
node.js
+sequelize
+mysql
业务背景
在mysql
数据库中,有两个表已经建立了外键关系.
这个时候我想删除主表上的数据
但是sequelize
提供的destroy
方法不行
表结构
- 班主任表:
master(id,name)
- 学生表:
student(id,master_id,name)
问题
通过Teacher.destroy({where: {id: 2})
删除的时候,会报错.因为受到外键约束..没办法删除
sequelize有内置的级联删除么?
或者用 query
方法,怎么写sql代码呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我使用的方式 获取实例和关联的实例执行删除
也许是这样
teacher = Teacher.findById(2)
students = teacher.getStudents()
for (let student of students) { student.destory() }
teacher.destory()
这是有效的。刚刚学习。也许还有更好的方式 :)
还有,看到belongsTo 的参数有:
options.hooks
,options.as
,options.foreignKey
,options.targetKey
,options.onDelete
:看一下这个能不能帮到你options.onUpdate
,options.constraints
:看一下这个能不能帮到你