jdbc操作如何做级联新增数据
情况如下 我有两个表A 和B 两者是一对多的关系 级B里面有一个A的id,A的id是自增类型
现在我有A和B的两部分信息 ,希望同时保存A和B 然后在B当中存放A的id
相当于
insert into A values(xxxx)
select A.id from last update //我如何来实现这一步?
insert into B values(A.id,xxxx);
本来考虑select max(A.id) from A
但是如果在执行了insert into A 之后,select max(A.id) from A 之前又有insert into A的操作,那么逻辑上就出现问题
要是能锁定整个表直到完成select max(A.id) from A 也能解决问题
目前我用的是mysql 5 ,不知道能否处理? 或者其他数据库有此功能也可说明一下
整个功能类似hibernate的级联操作,但是必须要jdbc来操作。
另外不知道是否可以使用transaction来实现锁表,请各位指教
------解决方案--------------------用Guid当主键,或者用@@Identity
------解决方案--------------------sqlserver2000的话,应该使用select scope_identity()
建议看看联机丛书,scope_identity()是当前连接任意表的上一个id,@@identity是全局任意表的上一个id,还有一个ident_current()是任意连接指定表的上一个id,用法是不同的。