求mysql自增字段,主子表同时保存的解决方法 现有主表a,子表sub_a,中间有a_id 存在关联,现在java程序中需要主子表同事保存,而且存在多个子记录。不用hibernate的处理方式,有其他方式吗?处理方式不能使用先保存主表,后获取id,再赋值子表外键,保存的方式。必须同时保存。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 难得见你发贴啊。存储过程。除非你的mysql版本不支持存储过程。 不管你用什么处理,都是先往主表插入数据,获得主键值再往子表查,只是可以用一条sql语句完成!sql参照declare @id bigint insert into a (字段名,字段名) values (值,值)select @id=@@identity//主键值 insert into sub_a (字段名,字段名)values ('值',@id) 自己找到解答方案啦,使用LAST_INSERT_ID()函数 我现在的项目中也有这个需求,后来没找到好的解决办法,存在主表和子表关系时就没用自增字段了,惭愧!LAST_INSERT_ID()函数,学习下…… LAST_INSERT_ID()有隐含BUG,如果有多用户在批量操作有自增字段时,取到的自增LAST_INSERT_ID有可能不是自己想要的。 “LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update操作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。”文章没看完,你的是对的。 关于hibernate一个实体类对应多个表的问题 hibernate中save执行后添加成功 但是数据库中没有数据库 id增长了. hibernate中的lazy与fetch有什么区别 使用pureLoad工具进行压力测试 怎样在war文件中引用外部图片 jsp 多种语言实现俄罗斯方块 tomcat启动出错 刚安装完jb8的问题? tomcat7:run 启动不了, 但是tomcat:run 这样就可以启动 并且maven的update project 也连接不上 struts里的java运行在几个虚拟机上? 关于SVN的导入Error
存储过程。
除非你的mysql版本不支持存储过程。
declare @id bigint
insert into a (字段名,字段名) values
(值,值)
select @id=@@identity//主键值
insert into sub_a (字段名,字段名)values
('值',@id)
LAST_INSERT_ID()函数,学习下……