如何插入数据到一对表(一对多)

gfh21cn 2004-09-06 11:15:55
我现在有一对表(一对多)
主表:ID,....
从表:ID,SubID,.....
我想插入数据到这两张表中,并且要实现这个关系。
ID,SubID都是字增型的
同时要考虑多人同时插入数据的情况
用SQL+JDBC做
...全文
204 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gfh21cn 2004-09-27
  • 打赏
  • 举报
回复
谢谢各位,揭帖了
gfh21cn 2004-09-06
  • 打赏
  • 举报
回复
太麻烦了
gfh21cn 2004-09-06
  • 打赏
  • 举报
回复
估计还需要锁定表
jackkui 2004-09-06
  • 打赏
  • 举报
回复
应该可以吧,事务的特性ACID
能够满足数据的一致性了,否则事务也没有用了
gfh21cn 2004-09-06
  • 打赏
  • 举报
回复
那个这样,如果多人同时插入数据的话
会不会有问题
如果用事务来封装,是不是可以屏蔽这个问题
jackkui 2004-09-06
  • 打赏
  • 举报
回复
对,这个问题没考虑到,这样的话你只能选择最大的出来了
max = select max(ID) from mainTable;
这样行不行?
gfh21cn 2004-09-06
  • 打赏
  • 举报
回复
count函数是返回记录数
记录数是一个动态的数据(可以删除)
字增性是一个相对稳定的数据
这样不可能形成一对多,会乱掉的
jackkui 2004-09-06
  • 打赏
  • 举报
回复
事务开始
//多表插入,但是这里你要知道主表插入的ID,才能向子表中插入,如果是自增的话,应该是最后一个,所以只要知道主表的行数就行了。
insert into maintable values(...);
int mainID = select count(*) from maintable;
insert into (select * from subtable where ID = mainID) values();
事务结束
只是一个思路,你看一下是否可行吧。
mail25 2004-09-06
  • 打赏
  • 举报
回复
你可以把主表的ID字段都设为主键,这样肯定会满足一对多的关系.
minghuitian 2004-09-06
  • 打赏
  • 举报
回复
要通过事务来做吧!
gfh21cn 2004-09-06
  • 打赏
  • 举报
回复
我本想用通用的SQL语句来实现,这样移植起来也方便。
看来还得借助数据库特有的东西来做

62,614

社区成员

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

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