在数据库管理中,经常需要同时更新多个数据。SQL 提供了多种 来实现此功能,包括以下两种最常用的 :
使用 UPDATE 语句
UPDATE 语句允许一次更新多个行的多个列。语法如下:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
例如,要将 "users" 表中所有 "username" 为 "john" 的行的 "email" 列更新为 "new@email.com",可以使用以下 UPDATE 语句:
UPDATE users
SET email = 'new@email.com'
WHERE username = 'john';
使用 MERGE 语句
MERGE 语句用于合并来自不同来源的数据,也可以用来同时更新多个数据。语法如下:
MERGE INTO table_name AS target
USING table_name_1 AS source
ON target.id = source.id
WHEN MATCHED THEN
UPDATE SET column1 = value1, column2 = value2, ...
WHEN NOT MATCHED THEN
INSERT (column1, column2, ...) VALUES (value1, value2, ...);
例如,要将 "orders" 表中的所有订单状态更新为 "shipped",可以使用以下 MERGE 语句:
MERGE INTO orders AS target
USING (SELECT * FROM orders WHERE status = 'pending') AS source
ON target.order_id = source.order_id
WHEN MATCHED THEN
UPDATE SET status = 'shipped';
选择合适的
选择使用 UPDATE 语句还是 MERGE 语句取决于具体情况。一般来说,如果只需要更新现有行,则使用 UPDATE 语句更为简单。而如果需要插入或更新行,则使用 MERGE 语句更合适。