关于事务与SQL Server外键约束冲突的问题

我设计了一个数据库,其中有两个表,一个users,一个userGroup
users里面有个userid是主键,里面有个groupid,
userGroup里面有个groupid,是主键,该字段在users表里面是外键。

添加的时候先要添加一个用户组,换言之就是我在使用事务先添加用户组以后的到groupid再用这个groupid组成一句添加用户的sql,但是提示出错,提示主外键约束错误,groupid必须是在userGroup便里面存在的值。

请问这种情况在不删除约束的情况下怎么使程序可以正确执行?
添加完group之后提交事务就不会被外键约束阻止,这个我知道。

但是使用事务的意义就是如果添加用户失败了,就不能添加一个空组.所以我现在不知道怎么做才能避开主外键关系约束。我很迷茫,摆脱哪位大哥知道了教教我啊。先谢了。

这是一个关于事务的问题

当你在这个事务中添加一个groupid到表userGroup中后,并没的提交事务。

也就是说这时userGroup表实际上并没有这个groupid

解决的方法当然也简单,就是在“用这个groupid组成一句添加用户的sql”时

先提交一次事务使这个groupid真正存到表中

(这个问题在事务的特性中明确的提到过,要好好看看书哦)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-04
这么和你说吧,主键具有唯一性,也就是不能重复
外键是和其他表联系的,也就是和其他表的主键相关联,通信.
都可以改
改主键时,要注意唯一,不能出现重复值
改外键值时,将会使这条修改了外键值的记录和其他表失去关联.
相似回答