我有两个表,第一个有列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中的过程组合这两个语句?
答案 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;