求救,两个关联的表新增记录,得到父表ID的问题。

sephiroth0079 2003-09-10 09:29:46
父表1字段
ID
Title
Content

子表2字段
ID
Detail
FID

其中两个表中的ID都是主键,自增长,表2中的FID是外键,就是表1中的ID。
我现在javabean中一个方法往表1、表2增加记录,过程是先往表1加记录,然后得到表1新记录的ID,再往表2中加记录,请问表1的记录添加结束后怎样才能得到那个ID?
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tomcat4 2003-09-10
  • 打赏
  • 举报
回复
SQL SERVER里有个全局变量@@IDENTITY返回最后插入行的标志(就是你的ID,ID要求是种子、主键)的值

insert into t1 values...
select @@identity from t1
Tomcat4 2003-09-10
  • 打赏
  • 举报
回复
表1的ID不用自增主键,表2的ID用自增主键:

declare @max_id integer;
set @max_id=(select max(ID)+1 from 表1);
insert into 表1(ID,Title,Content) values(@max_id,?,?);
insert into 表2(Detail,FID) values(?,@max_id);

// 以上为SQL Server 2000可执行通过

好象有个并发问题!不过几率不大
sephiroth0079 2003-09-10
  • 打赏
  • 举报
回复
楼上的用到存储过程了,
我在javabean中直接写sql语句该怎么实现?
用那个方法是不是会多有线程问题?
ejbcreate 2003-09-10
  • 打赏
  • 举报
回复
请问你什么数据库?
如果用oracle就比较好办。
如果用其他的,我觉得你最好把Title与Content的组合设为unique index。这样才好根据已知的title和content取回夫表的id。
yaray 2003-09-10
  • 打赏
  • 举报
回复
表1的ID不用自增主键,表2的ID用自增主键:

declare @max_id integer;
set @max_id=(select max(ID)+1 from 表1);
insert into 表1(ID,Title,Content) values(@max_id,?,?);
insert into 表2(Detail,FID) values(?,@max_id);

// 以上为SQL Server 2000可执行通过
Tomcat4 2003-09-10
  • 打赏
  • 举报
回复
我乡使用触发器是一个解决办法

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧