mysql - SQL使用全连接删除行

标签 mysql

我的数据库中目前有 2 个表,一个名为 User,另一个名为 Product,其中 User 中的每一行都存储有关一个用户,Product 中的每一行存储一个用户拥有的产品:

 User (Username, password, phone_num, address, email)
 Product (Username, item_name, type, taste, price, image) 

User 有主键 Username,Product 有主键 Usernameitem_name,Product 中有 Username也是一个外键,引用 User 中的Username

我正在尝试使用连接查询,该查询在执行时会删除用户以及与该特定用户相关的所有产品。现在我在 PHP 中有两个独立的工作查询:

"DELETE from User where Username='$username'";
"DELETE from Product where Username='$username'";

有没有一种方法可以使用 join 组合这两个查询来实现相同的目标?谢谢。

最佳答案

不,您不能在一个命令中同时删除两个表。以下是文档的链接:http://dev.mysql.com/doc/refman/5.7/en/delete.html

您可以做的是通过外键约束设置级联删除。当您删除用户时,如果产品表中有外键引用,该行也会自动删除。您将实现使用单个命令删除两者的目标,但您将不是通过连接而是通过约束来完成此操作。这是约束文档:http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html

关于mysql - SQL使用全连接删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36704262/

相关文章:

php - mysql保存用户名字符串类似时间戳的数据类型

mysql - 插入一年中的每个日期mysql

mysql - 在 MySQL 数据库中,如何知道每一列的存储大小?

php - Wamp 或 php – 错误?

php - 使用 PHP 更新库存数量

Mysql所有约束列表

mysql - 无法理解如何在基本 MYSQL 解释示例中摆脱表扫描

php - 如果有数百万用户,如何在用户提交后立即使用 php 从 mysql 获取详细信息

MySQL : splitting the processing of a particular table between different nodes

mysql - ActiveRecord::StatementInvalid: Mysql2::Error: 无法删除或更新父行 - Rails 4.2.6