短
我的表结构是这样的
这里是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 个表中删除:sections
、paragraphs
通过 2 个参数:$node
和 $subject_id
(当然,如果有带有这些参数的行。我的意思是必须有连接以防止任何错误)。
问题是..
这可能吗?我想不通,sql 语句必须是什么样子。有什么建议吗?
最佳答案
如果您使用ON DELETE CASCADE
设置了外键约束,那么您只需要删除父行。 MySQL 将自动删除子行。
关于php - 在 PHP 中一次从 3 个表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438339/