当前位置:   article > 正文

【SQL高级知识】MERGE INTO语句_sql merge into

sql merge into

MERGE INTO语句的案例:

假设我们有两个表格,一个是"users"表格,包含了用户的ID、姓名和地址信息;另一个是"users_updates"表格,包含了用户的ID和更新后的地址信息。我们想要使用MERGE INTO语句将"users_updates"表格中的地址信息合并到"users"表格中。

首先,我们创建"users"表格并插入一些示例数据:

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  address VARCHAR(100)
);

INSERT INTO users (id, name, address)
VALUES (1, 'John', '123 Main St');
INSERT INTO users (id, name, address)
VALUES (2, 'Jane', '456 Elm St');
COMMIT;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

查询结果:

SELECT * FROM users;

id | name |   address   
---+------+-------------
 1 | John | 123 Main St
 2 | Jane | 456 Elm St
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

接下来,我们创建"users_updates"表格并插入一些示例数据:

CREATE TABLE users_updates (
  id INT,
  address VARCHAR(100)
);

INSERT INTO users_updates (id, address)
VALUES (1, '789 Oak St');
INSERT INTO users_updates (id, address)
VALUES (3, '987 Maple St');
COMMIT;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

表数据查询结果:

SELECT * FROM users_updates;

id |   address   
---+-------------
 1 | 789 Oak St
 3 | 987 Maple St
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

现在,我们可以使用MERGE INTO语句将"users_updates"表格中的地址信息合并到"users"表格中,并根据ID进行匹配:

MERGE INTO users AS u
USING users_updates AS uu
ON (u.id = uu.id)
WHEN MATCHED THEN
  UPDATE SET u.address = uu.address
WHEN NOT MATCHED THEN
  INSERT (id, name, address)
  VALUES (uu.id, '', uu.address);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

上述MERGE INTO语句执行的操作如下:

  • 对于匹配到的记录(ID存在于两个表格中),更新"users"表格中对应记录的地址信息。
  • 对于未匹配到的记录(ID只存在于"users_updates"表格中),在"users"表格中插入一条新记录,包含ID和更新后的地址信息。

执行完上述语句后,查看"users"表格,我们可以看到更新和插入的结果:

SELECT * FROM users;

id | name |   address   
---+------+-------------
 1 | John | 789 Oak St
 2 | Jane | 456 Elm St
 3 |      | 987 Maple St
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如以上示例所示,MERGE INTO语句可以根据指定的条件将两个表格中的数据进行合并和更新,非常方便实用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/806745
推荐阅读
相关标签
  

闽ICP备14008679号