如何使用单个sql查询更新两个不同的表?

时间:2013-10-17 18:45:36

标签: mysql sql database

如何使用单个sql查询更新两个表?

假设我有两张桌子

1. Employee

empid  empname     salary
00001   Vijay      100000
00002   Alex       200000
00003   Jennifer   300000


2. Institute

regno    State        Country
123ab    Texas          USA
231nf    California     USA

那么我们如何更新两个表格让我说要更新“员工”表的“empid”00001的“薪水”字段和研究所表的“regno”123ab的“州”字段。

4 个答案:

答案 0 :(得分:3)

  1. 如果是相关数据,您可以执行JOIN
  2. 如果不是,您可能不会查找1个查询,而是1个transaction
  3. 如果需要将其作为1个电话,请定义一个程序

答案 1 :(得分:1)

BEGIN TRANSACTION
query1;
query2;
COMMIT

答案 2 :(得分:0)

您可以创建一个存储过程来更新Employee,然后更新Institute,这样您的单个查询就是:

exec spUpdateEmployeeTableAndInstituteTable

答案 3 :(得分:0)

实际上可以在一个查询中完成:

UPDATE Employee e, Institute i
SET e.salary = <new salary>,
    i.state = <new state>
WHERE e.empid = '00001'
AND i.regno = '123ab'