如何在oracle的第二个表中插入第一个表运行时间值?

维鲁

我有表 A 列如下所示

> id, name, salary
> 
> Max+1(10) ,'aa',100 max+1(11), 'bb',200 . .like that i have 10 record
> is there . Max+(21),'xx',1000

现在插入 10 行没有任何问题,它很好。

第二张表如下

p_id,age,id

p_id max+1 (41) ,30,(here i need to insert same id from A table 1st record(Max+1(10)))
p_id max+1 (42) ,31,(here i need to insert same id from A table 2nd record(Max+1(11)))
p_id max+1 (43) ,32,(here i need to insert same id from A table 3rd record(Max+1(12)))
.
.
.
.

同样,我需要在循环中插入 10 行。谢谢 。

MT0

使用存储过程而不获取MAX()+1值,使用序列:

SQL小提琴

Oracle 11g R2 架构设置

CREATE TABLE table1 (
  id      NUMBER(20,0) PRIMARY KEY,
  name    VARCHAR2(200),
  salary  NUMBER(12,2)
)
/

CREATE TABLE table2 (
  p_id    NUMBER(20,0) PRIMARY KEY,
  age     NUMBER(3,0),
  id      NUMBER(20,0) REFERENCES table1 (id)
)
/

CREATE SEQUENCE table1__id__seq
/
CREATE SEQUENCE table2__p_id__seq
/

CREATE PROCEDURE add_Details(
  in_name   TABLE1.NAME%TYPE,
  in_salary TABLE1.SALARY%TYPE,
  in_age    TABLE2.AGE%TYPE
)
IS
  p_id TABLE1.ID%TYPE;
BEGIN
  INSERT INTO table1 ( id, name, salary )
  VALUES ( table1__id__seq.NEXTVAL, in_name, in_salary )
  RETURNING id INTO p_id;

  INSERT INTO table2 ( p_id, age, id )
  VALUES ( table2__p_id__seq.NEXTVAL, in_age, p_id );
END;
/

查询 1

BEGIN
  add_Details( 'aa', 100, 30 );
  add_Details( 'bb', 200, 31 );
  add_Details( 'cc', 300, 32 );
END;

查询 2

SELECT * FROM table1

结果

| ID | NAME | SALARY |
|----|------|--------|
|  1 |   aa |    100 |
|  2 |   bb |    200 |
|  3 |   cc |    300 |

查询 3

SELECT * FROM table2

结果

| P_ID | AGE | ID |
|------|-----|----|
|    1 |  30 |  1 |
|    2 |  31 |  2 |
|    3 |  32 |  3 |

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据第一个表的ID对第二个表中的值求和,并将值插入第一个表中

C第一个fgets()在第二个运行时被跳过

如何加入在第一个进程仍在运行时退出的第二个进程?

如何使用第二个 sql 的名称从第一个表中删除值

当第二个表中的布尔值为TRUE时,用第一个表覆盖第二个表的结果

根据第一个表中的列在第二个表中插入新记录

当第二个表引用第一个表中的主键时,如何将记录插入到两个表中?

Oracle - 用第二个表中的行更新第一个表中的数据

如何通过第一个表值获取第二个表值

在表单中,选择第二个表和第一个表

SQL Oracle-使用存储在第二个表中的值(行)的列名对第一个表中的列中的值求和

Oracle:匹配第一个和第二个表的行

第二个表中的第一个日期,其中日期大于表中第一个oracle中的日期

SwiftUI:如何在关闭第一个工作表时显示第二个工作表

SQL 连接,其中第二个表中的值是第一个表中的第一个较低值

如何在Django ORM中联接两个表而第一个表中没有任何列引用第二个表

Mysql - sql 如何从包含第一个表 ID 的第二个表中获取最小时间和最大时间记录

查询第二个表的第一个值

Azure WebJobs - 仅在第二个未运行时运行第一个

如何从第一个表和第二个表中检索所有数据

基于Oracle SQL中第一个查询的结果的第二个查询中的UNION表

如何在不添加到第一个表的情况下将表行添加到第二个表中

如果第一个表中还有其他数据,如何从第二个表中获取单个值?

如何加入两个表并使用第二个表覆盖第一个表?

仅当第一个对象实现第二个对象所需的接口时,才在C#中如何在运行时编写两个对象?

phpMyAdmin在插入第一个表时执行触发器时,在第二个表中存储一个随机数

如何在C#中从第一个表对第二个表进行数据排序

SQL Server:使用第一个插入的输出插入第二个表

2个表的SQL查询如何填充第一个到第二个表的字段