mysql - 如果删除了子项,则自动删除父项

标签 mysql sql

这是我的数据库关系。

enter image description here

我得到这样的数据:

LikeDislike
|-------------|--------------|-----------------|
|      id     |     userId   |    createdAt    |
|-------------|--------------|-----------------|
|       1     |       1      |    2019-03-26   |
|-------------|--------------|-----------------|

RoomLikes
|------------------|--------------|
|   likeDislikeId  |     roomId   | 
|------------------|--------------|
|       1          |       1      |
|------------------|--------------|

我想做的事:

  1. 当我从 RoomLikes 中删除数据时,例如 DELETE FROM roomlikes where id = 1
  2. LikeDislike 中与RoomLikes 相关的数据将被自动删除。

如果删除了 child 的数据,有没有办法自动删除 parent 的数据?

如果您需要更多信息,请告诉我。

谢谢。

最佳答案

您可以使用以下查询

ALTER TABLE RoomLikes 添加外键 (likeDislikeId) 引用 LikeDislike(id) ON DELETE CASCADE;

请记住,您需要在引用表 (LikeDislike) 中有主键才能添加外键。使用这个,如果删除父表的数据,子表的数据也会被删除。

关于mysql - 如果删除了子项,则自动删除父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55413263/

相关文章:

sql - 动态生成小数点

mysql - 如何使用mysql查询获取前5个选定项目?

PHP/MYSQL 需要 SQL Join 吗?

sql - 使用 INSERT INTO ... SELECT 时避免重复字段名称

sql - H2 和外键

MySQL Count函数将两列的结果相乘(应该分别返回每列的计数)

mysql - c语言与mysql(如何将mySQL数据库包含到程序中)

mysql - 如何在 sql 脚本中而不是在存储过程中选择性地执行某些 sql 语句

mysql - 如何设置mysql默认值NONE

mysql - 将较慢的数据插入到 mySQL 中