【问题标题】:How to Delete one Unique Record from All tables in Mysql如何从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

标签: java javascript php mysql sql


【解决方案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'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 2012-02-28
    • 2013-01-30
    相关资源
    最近更新 更多