gpt4 book ai didi

php - 如何在删除一对一表中的相应行时自动删除表中的行?

转载 作者:行者123 更新时间:2023-11-30 23:33:07 26 4
gpt4 key购买 nike

我有两种不同的文档。一种是按文件夹组织的。另一个是由客户组织的。这是表结构,在 mysql 中:

Table docs
ID
title

Table folderDocs
docID -> docs(ID)
folderID -> folders(ID) ON DELETE CASCADE

Table clientDocs
docID -> docs(ID)
clientID -> clients(ID) ON DELETE CASCADE

我正在寻找一种优雅的方式来在删除文件夹或客户端时自动删除文档。上面的级联规则并不能完全做到这一点。 (即 folderDocs 中的行将被删除,但 docs 中的相应行将保留。)

有没有办法在 mysql 中设置它,使用级联规则或其他方法,以便当 folderDocs 或 clientDocs 中的一行被级联删除时,docs 中的相应行也被删除? (我希望避免必须先以编程方式删除文档,然后再删除文件夹/客户端。)

(提前)感谢您的帮助。

最佳答案

假设每个文档都必须属于一个文件夹或一个客户端,那么您可能需要设置一个计划的清理作业,以使用下面的查询删除所有没有文件夹和客户端的文档

DELETE FROM docs USING docs
LEFT JOIN clientDocs c ON (c.docid = docs.id)
LEFT JOIN folderDocs f ON (f.docid = docs.id)
WHERE ISNULL(c.clientid) AND ISNULL(f.folderid)

关于php - 如何在删除一对一表中的相应行时自动删除表中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9576344/

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