Oracle 将一个表中的数据批量更新到另一个表
时间: 2024-09-20 19:03:38 浏览: 80
Oracle中多表关联批量插入批量更新与批量删除操作
在Oracle数据库中,你可以使用`INSERT INTO ... SELECT`语句或者`MERGE`语句来将一个表的数据批量更新到另一个表。这里我会介绍这两种方法:
1. **INSERT INTO...SELECT**:
如果两个表的结构完全匹配,并且你想简单地复制数据,可以使用如下SQL命令:
```sql
INSERT INTO destination_table (column1, column2, ...)
SELECT column1, column2, ... FROM source_table;
```
这会将`source_table`的所有行插入到`destination_table`中,但不会覆盖已有的数据。
2. **MERGE**:
`MERGE`语句更为灵活,它可以同时支持插入、更新和忽略操作。基本语法如下:
```sql
MERGE INTO destination_table D
USING source_table S ON (D.matching_column = S.matching_column)
WHEN MATCHED THEN
UPDATE SET D.column1 = S.column1, D.column2 = S.column2
WHEN NOT MATCHED THEN
INSERT (column1, column2, ...)
VALUES (S.column1, S.column2, ...);
```
这里假设`matching_column`用于确定哪些记录需要更新。
阅读全文