如何从Oracle sql中的表1更新表2中的ID

时间:2017-07-15 07:16:05

标签: java sql database oracle stored-procedures

我有两个表,第一个有列ID, email, password。第二个表格有id, salary, company, dept

表1 col Id是自动生成的数字。

我有一个Java表单,它收集除id之外的所有这些值并使用过程保存到db。

现在每当我向Java表单添加详细信息时,如何将它从java表单中的其他值传递到表2?

我试过insert into table2(id) select id from table1;insert into table2(salary, company) values (x, y);

如何使用SQL中的过程组合这两个语句?

2 个答案:

答案 0 :(得分:0)

您可以通过两种方式执行此操作:

1)找出生成id的函数或过程,它将在你的代码中,  然后得到那个id并插入表2中 OR

2)您必须获取最后插入的行的行ID,每个表的行ID都是唯一的:

SELECT MAX (ROWID) FROM table1

使用rowid获取最后一个ID:

SELECT id FROM table1 WHERE ROWID IN (SELECT MAX (ROWID) FROM table1)

现在使用它的id并插入到表2中,这必须在将另一个新行插入表1之前完成

答案 1 :(得分:0)

您可以尝试这样:

create or replace procedure proc (em in varchar2,pass in varchar2,sal in number,cmp in varchar2,d in number)
as
sid number;
begin
insert into table1(id,email,password) values(<autogenerated_number>,em,pass) returning id into sid;
insert into table2(id,salary,company,dept) values(sid,sal,cmp,d);
commit;
end;