表一:CarList
INSERT INTO "CarList" (
id ,
carname)
VALUES (
CARLIST_SEQ.nextval ,
'车1');表二:
carlist2:
id2 , carlist_id ,name2一对一对应关系
CarList.id 对应 carlist2.carlist_id
当插入 表一:CarList 的时候, 要同时插入 表二:carlist2我们是用 SEQ 来做主键, 请问在插入表二的时候 carlist2.carlist_id 如何得到??
INSERT INTO "CarList" (
id ,
carname)
VALUES (
CARLIST_SEQ.nextval ,
'车1');表二:
carlist2:
id2 , carlist_id ,name2一对一对应关系
CarList.id 对应 carlist2.carlist_id
当插入 表一:CarList 的时候, 要同时插入 表二:carlist2我们是用 SEQ 来做主键, 请问在插入表二的时候 carlist2.carlist_id 如何得到??
这个是 PL/SQL 吧?
本人是 纯写java,完全没有写过 存储过程,帮忙指引一下 谢谢
PL/SQL、支持JDBC/ODBC、支持数据库API的任意一种语言都是可以处理的。
有你这一句就问题就解决了 ,
但我还想看看如果 是用 PL/SQL 来处理的话 是如何的? 方便写个demo 来看看么?
declare
v_id number;
begin
select CARLIST_SEQ.nextval into v_id from dual;
insert into carlist (id ,carname) values (v_id,'车1');
insert into carlist2 (carlist_id ,name2) values (v_id,'车2');
end;
create or replace procedure proc_insertcarlist(carname1 varchar2, carname2 varchar2)
is
v_id number;
begin
select CARLIST_SEQ.nextval into v_id from dual;
insert into carlist (id ,carname) values (v_id,carname1);
insert into carlist2 (carlist_id ,name2) values (v_id,carname12);
end proc_insertcarlist;
CREATE TABLE carlist2(id2 VARCHAR(10),carlist_id VARCHAR(10),name2 VARCHAR2(30));CREATE SEQUENCE s_carlist
INCREMENT BY 1
START WITH 1
MINVALUE 1
NOMAXVALUE ;CREATE OR REPLACE TRIGGER xcarlist
AFTER INSERT ON CarList FOR EACH ROW
BEGIN
INSERT INTO carlist2 VALUES (:NEW.id,:NEW.id,:NEW.carname);
END;SELECT s_carlist.NEXTVAL FROM dual;
SELECT s_carlist.CURRVAL FROM dual;INSERT INTO carlist VALUES (s_carlist.NEXTVAL,'CAR ONE');
SELECT * FROM carlist;
ID CARNAME
2 CAR ONESELECT * FROM carlist2;
ID2 CARLIST_ID NAME2
2 2 CAR ONE