如果有一个 ParentTable table1 和 child-table table2 并且我想确保两者都被创建(以正确的顺序!)或者没有被创建,这是正确的语法吗?
begin
insert into table1 values (seq.nextvalue, 'test') ;
insert into table2 values (seq.currvalue, 'test3');
commit;
end;
如果您担心序列分配中的不同值,请在插入之前将其提取到变量中。如果引发任何异常,它将回滚插入,否则将提交它们。
DECLARE
v_seq_id NUMBER;
BEGIN
SELECT seq.nextval
INTO v_seq_id
FROM dual;
--
INSERT INTO table1
VALUES (
v_seq_id,
'test'
);
--
INSERT INTO table2
VALUES (
v_seq_id,
'test3'
);
--
COMMIT;
EXCEPTION
WHEN others
THEN
<log_error>
ROLLBACK;
END;
希望能帮助到你...
未经测试,但必须是这样的
begin
insert into table1 values(seq.nextval, 'test') ;
insert into table2 values(seq.currval, 'test3');
commit;
end;