如何从Mysql中的所有表中删除一条唯一记录

Posted

技术标签:

【中文标题】如何从Mysql中的所有表中删除一条唯一记录【英文标题】:How to Delete one Unique Record from All tables in Mysql 【发布时间】:2014-01-28 15:18:17 【问题描述】:

这是我的桌子

表1:

id  mark      
01   80
02  100

表2:

id  subject    
01  80
02  100

我想在一个查询中同时删除两个表中的 id 01 记录 此代码无效

s2.executeUpdate("Delete from * where Student_ID = '"+mng_stu_stuid.getText()+"' ");

【问题讨论】:

如果您可以修改正在查询的 mysql 数据库,我会查看triggers 【参考方案1】:

不,你不能。 DML(数据操作语言)查询一次只影响一个表。

【讨论】:

使用单个事务而不是单个查询。【参考方案2】:

您可以在 MySQL 中创建视图。然后从视图中删除记录将删除视图中所有表中的记录。唯一需要注意的是权限

有些视图是可更新的。也就是说,您可以在 UPDATE、DELETE 或 INSERT 等语句中使用它们来更新基础表的内容。要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。还有某些其他构造使视图不可更新。

来源:http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html

【讨论】:

如果每个表中的数据相同(例如表 A 中的 100 条记录和表 B 中具有相同 ID 的 100 条记录),这是一个好主意【参考方案3】:

如果你使用 mysql 看DELETE Manual

您可以编写以下代码:

delete table1, table2 from table1, table2 where table1.id='01' and table2.id='01'

【讨论】:

以上是关于如何从Mysql中的所有表中删除一条唯一记录的主要内容,如果未能解决你的问题,请参考以下文章

Mysql数据库中多条重复数据,如何只删除一条?

MYSQL:如何清空表中的数据 truncate delete

如何确定Oracle数据库表中重复的记录

怎样删除mysql一个表中的全部数据

mysql 用一条语句删两张表中的数据

如何从 MySQL 表中删除重复记录? [复制]