gpt4 book ai didi

php - 在 PHP 中一次从 3 个表中删除行

转载 作者:行者123 更新时间:2023-11-29 01:10:17 24 4
gpt4 key购买 nike

我的表结构是这样的

enter image description here

这里是Sql语句

            $stmt = $this->db->prepare("DELETE FROM chapters WHERE (subject_id=? AND id = ?)") or die($this->db->error());
$stmt->bind_param("ii", $subject_id, $node);
$stmt->execute();
$stmt = $this->db->prepare("DELETE FROM sections WHERE (subject_id=? AND chapter_id=? )") or die($this->db->error());
$stmt->bind_param("ii", $subject_id, $node);
$stmt->execute();
$stmt = $this->db->prepare("DELETE FROM paragraphs WHERE (subject_id=? AND chapter_id=?)") or die($this->db->error());
$stmt->bind_param("ii", $subject_id, $node);
$stmt->execute();

所以我想做的是,将这 3 个语句合并为一个并优化服务器负载。

详细

例如,如果我想从 chapters 表中删除 id=1 的行,那么还要从另外 2 个表中删除:sectionsparagraphs 通过 2 个参数:$node$subject_id(当然,如果有带有这些参数的行。我的意思是必须有连接以防止任何错误)。

问题是..

这可能吗?我想不通,sql 语句必须是什么样子。有什么建议吗?

最佳答案

如果您使用ON DELETE CASCADE 设置了外键约束,那么您只需要删除父行。 MySQL 将自动删除子行。

关于php - 在 PHP 中一次从 3 个表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438339/

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