gpt4 book ai didi

Mysql 找到共享帖子的根父级

转载 作者:行者123 更新时间:2023-11-29 18:55:10 27 4
gpt4 key购买 nike

我必须像在 Facebook 上一样管理共享帖子,这就是我打算这样做的方式。

我有一个表,其中包含带有parent_id字段的文章,我想在删除父项时将所有共享文章的状态更改为0(当父项状态= 0时)

articles

+----+-----------+--------------+-------+--------+
| id | content | user_id | parent_id | state |
+----+-----------+--------------+-------+--------+
| 1 | content | 2 | null | 1 |
| 2 | content | 5 | null | 1 |
| 3 | content | 4 | 2 | 1 |
| 4 | content | 6 | null | 1 |
| 5 | content | 7 | 1 | 1 |
| 6 | content | 1 | 3 | 1 |
| ...| ... | ... | ... | ... |
+----------------+---------+------------+--------+

根据上面的文章表的示例:

用户 4 共享文章 2,用户 1 共享文章 3,该文章是文章 2 的子文章。因此,当文章 2(根文章)被删除(其状态更改为 0)时,所有子文章(3 和 6)状态都有也更改为 0。

如何实现这一点?

任何其他方式来管理共享帖子将不胜感激

最佳答案

我认为你可以在删除时编写一个触发器:

文档:https://dev.mysql.com/doc/refman/5.7/en/create-trigger.html

有一个例子:

插入文章之前对于每一行开始 更新文章 SET Parent_id = 0 WHERE Parent.id = OLD.parent_id;结束

如果您需要在多个表上使用触发器,您可以编写一个存储过程并在触发器上调用它,而不是在每个表上编写查询。

此外,如果您想避免丢失/未链接的记录,如果您使用 INNODB 表,则可以拥有外键。使用外键,您无法插入不存在的parent_id,或者您无法删除有任何子级的寄存器。

您可以在此处查看有关外键的文档:https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html

关于Mysql 找到共享帖子的根父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44185631/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com