从数据库中的多个表中删除数据


Deleting data from multiple tables in a database

我一直在试图弄清楚如何从数据库中的多个表中删除数据。只是为了提供一些背景,有一个用户表保存基本信息,如名字和姓氏。然后有一个保存密码和用户名的登录表。我正在制作一个管理页面,允许我查看包含两个表中信息的用户列表。这部分工作正常。我的问题是尝试创建删除脚本。我尝试进行单独的查询,但我一无所获。有人可以给我一些方向吗?或者至少在我可以专门阅读的地方?

// Get IDs
$lid = $_POST['lid'];
$uid = $_POST['uid'];
// Delete the product from the database
require_once('database.php');
$query = "DELETE user,login FROM user INNER JOIN login ON user.uid = '$uid' AND login.lid= '$lid'";
 $db->exec($query);

添加一个外键,然后在列定义中使用 ON DELETE CASCADE,这将负责在删除父行时删除子行

这取决于

数据库(可能还有哪些约束)是否可以在单个 DML 语句中执行此操作。 但是,更简单的选择通常是使用两个 DML 语句执行类似操作。

$query = "DELETE FROM user WHERE user.uid = '$uid'";
$db->exec($query);
$query = "DELETE FROM login WHERE login.lid= '$lid'";
$db->exec($query);