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;
------解决方案--------------------用触发器,或者存储过程