如何从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中的所有表中删除一条唯一记录的主要内容,如果未能解决你的问题,请参考以下文章