社区
C#
帖子详情
如何主外键约束关系的两个表中插入数据
cyliyang
2010-11-20 02:30:23
oracle数据库中有建立主外键关系的两张表,主表和明细表,例如订单和订单明细
主表: OrderID 主键
其它字段略
明细表: OrderID:外键
其它字段图
现在要向表中插入数据,主表中1条,明细表中5条。
向明细表中插数据时,提示违反主外键约束,
在用事务处理 时 该怎么写 Sql 语句呢 ?
请教各位帮忙解决一下 !!!!
...全文
1248
7
打赏
收藏
如何主外键约束关系的两个表中插入数据
oracle数据库中有建立主外键关系的两张表,主表和明细表,例如订单和订单明细 主表: OrderID 主键 其它字段略 明细表: OrderID:外键 其它字段图 现在要向表中插入数据,主表中1条,明细表中5条。 向明细表中插数据时,提示违反主外键约束, 在用事务处理 时 该怎么写 Sql 语句呢 ? 请教各位帮忙解决一下 !!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cyliyang
2010-11-25
打赏
举报
回复
[Quote=引用 4 楼 krad_d 的回复:]
你主表中应该有自增长的唯一标识吧!
那么你在主表插入的语句中加入select @@identity 获得最新自增长的ID
这iD就是明细表的外键了
[/Quote]
多谢提醒 这个读取解决了 oracle中的 是自增序列 sequence 读取当前的CURRVAL 值 是当前插入记录 的号。 不过该怎么保证与明细表中后插入相关联数据10条匹配一致呢 ?也就是在多线操作时 会不会是读取的这个号 可能就是别人刚刚插入的值了 该怎么处理多线是这样的问题呢 ?多线时 加锁处理该怎么实现呢?
浪子-无悔
2010-11-20
打赏
举报
回复
[Quote=引用 4 楼 krad_d 的回复:]
你主表中应该有自增长的唯一标识吧!
那么你在主表插入的语句中加入select @@identity 获得最新自增长的ID
这iD就是明细表的外键了
[/Quote]
在存数过程中试可以这么操作,但是不知道楼主到底是插入语句用存储过程实现还是想利用后台代码实现
呵呵
浪子-无悔
2010-11-20
打赏
举报
回复
很简单哈。
如果你主表的ID是自动增长的话 我觉得不是一个很好的解决方法,毕竟自动增长在程序里面不好控制。
比方你 获取最大记录数+1 万一你有删除的数据呢,这样不准确。
采用 COUNT 的方法更不合适。
建议采用.NET 自带方法 GUID 生成主表的ID 然后用一个变量保存起来。
明细表插入数据的时候不就可以引用主表的ID 了 然后就循环SQL语句 呗。试下。
Krad_D
2010-11-20
打赏
举报
回复
你主表中应该有自增长的唯一标识吧!
那么你在主表插入的语句中加入select @@identity 获得最新自增长的ID
这iD就是明细表的外键了
cyliyang
2010-11-20
打赏
举报
回复
[Quote=引用 1 楼 gac520 的回复:]
有这个外键约束的话,你的明细表的ORDERID 这个字段在主表里必须有改记录才可以哈
事物:无碍乎就是你执行的语句 必须完全成功执行 提交,只要有一条无法执行将全部回滚。
[/Quote]
我同时 向 这两个表中插入一组记录 主表中一条 明细表中 5 条 该怎么写这个 语句呢?
cyliyang
2010-11-20
打赏
举报
回复
恩 在主表中 ID 是自动增长序列 我在向主表中 插入一条后 再怎么写 向明细表中 插入5条记录的语句呢 (明细表中外键非空 怎么获取得到 要插入的与主表中相匹配关联的ID 号?)
浪子-无悔
2010-11-20
打赏
举报
回复
有这个外键约束的话,你的明细表的ORDERID 这个字段在主表里必须有改记录才可以哈
事物:无碍乎就是你执行的语句 必须完全成功执行 提交,只要有一条无法执行将全部回滚。
Day 39 约束
主
键 外键
目录 Day 39 约束
主
键 外键 约束 constraint mysql中的约束 表之间的
关系
级联操作 cascade Day 39 约束
主
键 外键 约束 constraint 约束是一种限制,
数据
...
mysql 删除
主
外键的语句_
数据
库的SQL语句创建和
主
外键删除操作
1 create table UserType23 (45 Id int primary key identity(1,1), Name nvarchar(25) not null67 ) go1 create table UserInfo23 (45 Id int primary key identity(1,1), LoginPwd varchar(50) not null, Log...
myslql
主
外键约束
多表操作 1.分类表 create table category( cid varchar(32) primary key, cname varchar(100) ); 2.商品表 create table product( pid varchar(32) primary key, pname varchar(40), price double, catego...
关于
数据
库 约束或
主
外键约束
的
插入
失败问题
在
数据
库里面,为了保证
数据
的有效和一致,通常都会在不同的表之间建立
外键约束
。这样虽然达到保证一致性的要求,但是如果需要清理
数据
或者初始化
数据
就会遇到麻烦,不根据表的
外键约束
得出表的
主
从
关系
当然不能随便的删除或者导入
数据
! DB2里面有一个内部的目录视图SYSCAT.REFERENCES,里面就保存着
数据
库每张表的每一个
外键约束
的信息,以下就是DB2 V8.2里面这个视图的定义:(SY
Hibernate配置⽂件hibernate.xml,dynamic-insert=“true“,dynamic-update=“true“,where,避免重复设置
主
外键约束
关系
hibernate.xml hibernate.xml 配置 Hibernate 的全局环境。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章