SQL语句实现两个表同时更新

SQL语句实现两个表同时更新,第1张

可用触发器实现:

create trigger UpdateB

on A

for update

as

update B set [B表的类别字段名]=a.[A表的类别字段名] from inserted a,deleted b where [B表的类别字段名]=b.[A表的类别字段名]

GO

如果两个表有关联的话是可以的,比如A表的id和b表的b_id外键关系就可以

update a left join b on a.id = b.b_id set a.name = '',b.name='' (where条件)

假设你要更新 ID =1,如果用MYSQL是可以实现的(目前只有MYSQL支持这样的语法)。参考下面的语法。

UPDATE employee t1,info t2

SET t1.name='abc', t1.password='123', t2.tell='123456', t2.address='zxy'

WHERE t1.ID=t2.ID and t1.ID = 1

但是按照SQL标准,在其它数据库里SQL 语句不支持 用UPDATE来同时更新两张表。你这么做可移植性不好。而且和拆成两条来比较也没优势的地方。

用其它数据库你必须拆成两条UPDATE,假设你要更新 ID =1的 一个人的两部分信息那么可以参考下面的方法。

UPDATE employee SET name='abc', password='123', WHERE ID = 1

UPDATE info SET tell='123456', address='zxy' WHERE ID = (select ID from employee where ID=1)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6667959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存