用的是JDBC,数据库oracle 9i,现在有数据库A,数据库B,数据库A有两个表A1,A2,数据库B有表B1,B2,A1和B1,A2和B2的结构都相同,
其中A1和A2是主从表关系,B1和B2是主从表关系,现在的需求是要将A1,A2表中的数据复制到数据库B的B1表和B2表,考虑到事务的问题,我想如下设计,但
感觉好象比较麻烦,看大家有无好的办法.注意,我没用触发器,用代码. try
{
begin transcation
boolean b1=插入B1();
boolean b2=插入B2();
if b2=false then 回滚B1的事务;
if (b1=true) and (b2=true)
{
boolean b3=更新A1();
if b3=false then 回滚b2,回滚B1
}
}
其中A1和A2是主从表关系,B1和B2是主从表关系,现在的需求是要将A1,A2表中的数据复制到数据库B的B1表和B2表,考虑到事务的问题,我想如下设计,但
感觉好象比较麻烦,看大家有无好的办法.注意,我没用触发器,用代码. try
{
begin transcation
boolean b1=插入B1();
boolean b2=插入B2();
if b2=false then 回滚B1的事务;
if (b1=true) and (b2=true)
{
boolean b3=更新A1();
if b3=false then 回滚b2,回滚B1
}
}
=======================================
Oracle有savepoint,试试Connection.setSavepoint(),rollback(Savepoint savepoint) 能不能解决
boolean b1=insertb1(); (如果b1=true,则代表成功插入b1,否则为false)
2) 由于插入B2表时,需要先到A2表中取某个内容 C,再到B1表中取某个内容D,再把C,D插入到B2表中去。
所以 boolean b2=insertb2();
if b2=false then rollback b1;
3) if b1=true and b2=true
{
boolean a2=更新a2表();
}
if a2=false then roolback b1,b2