首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >主键、外键和唯一约束的实际工作,它们的工作顺序/步骤

主键、外键和唯一约束的实际工作,它们的工作顺序/步骤
EN

Stack Overflow用户
提问于 2011-03-28 13:46:35
回答 3查看 270关注 0票数 2

主键、外键和唯一约束是如何工作的?我的意思是按什么顺序?

例如,当一个子表有一个FK,并在其中插入了一条记录,而这条记录在父表中并不存在,那么首先将该记录插入到子表中&然后约束检查父表中是否存在该记录,如果没有找到,则回滚并从子表中删除该记录。这是工作的顺序吗?

或者,first SQL是否从insert查询中获取记录(在其上执行FK ),并将其与父表记录进行匹配,并在未找到匹配记录时停止插入,而插入本身并未在子表中插入该行?

类似地,对于主键,如果在表中插入了重复的记录,则先插入它,然后检查它,或者在插入之前先将其与现有记录匹配,如果它是重复记录,则停止查询。

EN

回答 3

Stack Overflow用户

发布于 2011-03-28 18:20:58

从逻辑上讲,所有约束都应该同时针对UPDATE、INSERT或DELETE语句的整个结果进行检查。对约束进行评估,就好像对所有行的修改已经发生一样,如果违反了任何约束,则不允许进行修改。

票数 1
EN

Stack Overflow用户

发布于 2011-03-28 13:55:49

你需要rdbms参考的基础知识。这是免费资源:http://msdn.microsoft.com/en-us/library/aa933098%28v=SQL.80%29.aspx

票数 0
EN

Stack Overflow用户

发布于 2011-03-28 15:35:47

考虑TRIGGER可访问的逻辑(概念性)表deletedinserted。即使是这些也只是概念。谁知道被子里发生了什么...well肯定有人知道..。但你关心被子里发生了什么吗?在概念层面上,它要么成功,要么失败,或者您可以在触发器中操纵结果。您还需要了解哪些内容?;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5455137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档