首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

jdbc 事务,两条insert语句之间的事务关系,该如何处理

2012-03-07 
jdbc 事务,两条insert语句之间的事务关系环境:mysql,window,j2se,spring想实现这样的一个事务1,保存一条记

jdbc 事务,两条insert语句之间的事务关系
环境:   mysql   ,window,j2se,spring

想实现这样的一个事务

1,保存一条记录a   到表A
2,保存一条记录b   到表B

他们处在一个事务中,但问题是a的主键id是b里的一个not-null,如果在同一个事务中,执行到2的时候,其实1在数据库中也没有保存,所以也没有id的值,那么这时在执行2的时候就会出现not-null的错误?

如何解决这个问题?

[解决办法]
当然了,如果用事务也是可以的,不过就是要注意SQL语句的顺序了!例如:
a中的cola是主键,b中的colc是主键,同时b中的cola是外键,那么插入语句应该这么写:
start transaction;
insert into a(cola,colb) values( "test ", "hello "); -- 第一步必须先执行
insert into b(colc,cola) values( "mysql ", "test "); -- 第二步才执行这个
commit;
[解决办法]
用触发器,或者存储过程

热点排行