【问题标题】:using single sql query how to insert data in three tables which are not joined . or can we insert data into multiple tables which are not joined使用单个 sql 查询如何在三个未连接的表中插入数据。或者我们可以将数据插入到多个未连接的表中吗
【发布时间】:2018-04-23 08:05:42
【问题描述】:

使用单个sql查询如何在三个未连接的表中插入数据。或者我们可以将数据插入到多个未连接的表中。

【问题讨论】:

  • 每个表需要一个 INSERT。
  • 您可能正在寻找a multitable insert(即insert all ...),但不清楚。
  • 为什么必须是一个声明?通常您只需执行三个单独的插入语句并以commit 结束此事务。如果您想在一次调用中使用所有这四个命令,您可能需要为此编写一个存储过程或一个匿名块。只需一个调用,但这将是 PL/SQL,而不仅仅是 SQL。

标签: sql oracle oracle10g


【解决方案1】:

使用INSERT ALL 声明:

SQL Fiddle

Oracle 11g R2 架构设置

CREATE TABLE table1 (
  a NUMBER,
  b VARCHAR2(20),
  c DATE
);

CREATE TABLE table2 (
  d NUMBER,
  e NUMBER,
  f TIMESTAMP
);

INSERT ALL
INTO table1 ( a, b, c ) VALUES ( id, 'Table1', SYSDATE )
INTO table2 ( d, e, f ) VALUES ( id, 3, TIMESTAMP '2018-04-23 00:00:00' )
  SELECT 1 AS id
  FROM   DUAL;

查询 1

SELECT * FROM table1

Results

| A |      B |                    C |
|---|--------|----------------------|
| 1 | Table1 | 2018-04-23T08:27:37Z |

查询 2

SELECT * FROM table2

Results

| D | E |                     F |
|---|---|-----------------------|
| 1 | 3 | 2018-04-23 00:00:00.0 |

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-01
    • 2019-07-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多