社区
Java SE
帖子详情
JAVA 插入两个有外键关系的表
suntingtingonly
2011-02-16 03:42:03
问题是这样的 我有两个表 一个表(A表)的主键(自动增长列) 是另一个表(B表)的外键
现在 我得到数据 要向这两个表中插入
但我插入 A表 后 再插入B 表 但是 B表中的外键那个字段 需要是插入A表中的主键字段的数值
请问 怎么解决
我想到的方法是 插入A表后 在查询出 A表插入是哪个主键的数值
有没有其他的方法
...全文
365
7
打赏
收藏
JAVA 插入两个有外键关系的表
问题是这样的 我有两个表 一个表(A表)的主键(自动增长列) 是另一个表(B表)的外键 现在 我得到数据 要向这两个表中插入 但我插入 A表 后 再插入B 表 但是 B表中的外键那个字段 需要是插入A表中的主键字段的数值 请问 怎么解决 我想到的方法是 插入A表后 在查询出 A表插入是哪个主键的数值 有没有其他的方法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ass3326524
2011-02-20
打赏
举报
回复
在mysql中是可以这么实现,你在创建PreparedStatement的时候这么写:
PreparedStatement pstm = conn.prepareStatement (sql,PreparedStatement.RETURN_GENERATED_KEYS);
在执行完插入操作后再获取主键值
ResultSet rs = pstm.getGeneratedKeys();
huhk
2011-02-20
打赏
举报
回复
可以写DB函数,直接操作两个table。
无聊找乐
2011-02-18
打赏
举报
回复
oracle 和sqlserver 处理方式不一样?
suntingtingonly
2011-02-18
打赏
举报
回复
谢谢 大家。 没有框架 自己写的JDBC 程序。 触发器不行。因为 B表插入的东西是我程序计算的结果。不能用触发器。
想问下还有没有其他的办法
如果数据库是ORACLE 这个我知道怎么做到
如果是SQLSERVER 数据库呢 问下大家这个怎么办?
tanrenzong1986
2011-02-16
打赏
举报
回复
如果是在spring框架下,不妨在pojo中就设置,把关联的外键字段注解为@joinColoum 就可以。
liumin_csu
2011-02-16
打赏
举报
回复
可以在A表上加个触发器:
1.当A表插入了你需要插入的记录后,A表的主键得了数据。触发器设定在A插入记录后向B表插入一条记录。
在触发器里插B表时将数据插入B的外键,以及B的主键(这里需要能区分的字段,方便等下插B表时使用)。
2.当你在代码里插B表时,根据B表的相关字段来修改此条记录,填充其他字段。
这个方法要根据你的具体业务来考虑,如果触发器在插B表时得不到2步骤在修改记录时需要的字段,则此方法行不通。
楼主的方法是行得通的,只是得多写代码,数据流向好像走了弯路。
希望对楼主有帮助。
linyfei
2011-02-16
打赏
举报
回复
我想知道的是你是在哪里操作这两张表啊?是在什么程序中?什么框架?什么数据库?
Java
学习指南(8) MySQL数据库与JDBC框架
* MySQL的安装和使用 * 常用SQL语句,增删改查操作 * 高级SQL查询,多
表
关联查询 *
表
的设计:主键,索引,内连接外连接,
外键
* MySQL配置管理: 用户授权,远程访问,备份还原 * JDBC连接: 使用JDBC连接...
关于主
外键
关系
主
表
子
表
插入
或者更新
主
外键
关系
表
主
表
子
表
插入
或者更新问题 对于多
表
的整体跟新数据,并且各个
表
之间有主
外键
关联
表
UserA为主
表
,主键为id;
表
UserB为主
表
,主键为Bid,
外键
为id;
表
UserC为主
表
,主键为Cid,
外键
为id; 代码逻辑为先...
【
Java
进阶篇】MySQL
外键
约束详解
在MySQL中,
外键
约束是通过在引用
表
中的字段上定义
外键
关系
来实现的。首先,在引用
表
中定义一个或多个字段,这些字段将用于与被引用
表
中的字段建立关联。
外键
约束是数据库中维护数据完整性和建立关联
关系
的重要工具...
多
表
操作-
外键
约束
多
表
操作-
外键
约束
java
插入
有
外键
的数据_如何使用
外键
将值
插入
现有SQL Server
表
我有一个数据库,我想向
表
中
插入
新值,问题是我有
两个
表
与FK相互之间 . 我知道问题是 Alter Table 的问题,但我无法弄清楚是什么导致它 .第一
表
:部门CREATE TABLE [dbo].[Department]([DID] [int] primary key,...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章