我知道以下查询是错误的。 SQL不支持这一点,但想知道为什么SQL不支持这个。
UPDATE Table1, Table2
SET Table1.Column1 = 'one',
Table2.Column2 = 'two'
FROM Table1 T1, Table2 T2
WHERE T1.id = T2.id and T1.id = 'id1'
答案 0 :(得分:1)
您无法在一个语句中更新多个表,但是,您可以使用事务来确保以原子方式处理两个UPDATE语句。您也可以批量处理它们以避免往返。
BEGIN TRANSACTION;
UPDATE T1, T2
SET T1.Column1 = 'one'
FROM Table1 T1, Table2 T2
WHERE T1.id = T2.id and T1.id = 'id1'
UPDATE T1, T2
SET T2.Column2 = 'two'
FROM Table1 T1, Table2 T2
WHERE T1.id = T2.id and T1.id = 'id1'
COMMIT;