表选用一个自动ID作为主健,如何进行表之间的一致性约束

fengling2001 2011-06-03 09:03:42
表一
ID (自动ID,PK)
departmentID
name
address

表二
ID ((自动ID,PK))
codeID
departmentID
num

表一 departmentID 和 表二departmentID如何做一致性约束,除了触发器还有别的好得方法吗? (现在想使用自动ID作为主健,所以主外键约束不好使)



...全文
95 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
BetterMe 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 fengling2001 的回复:]
表一
ID (自动ID,PK)
departmentID
name
address

表二
ID ((自动ID,PK))
codeID
departmentID
num

表一 departmentID 和 表二departmentID如何做一致性约束,除了触发器还有别的好得方法吗? (现在想使用自动ID作为主健,所以主外键约束不好使)
[/Quote]
表1或表2的departmentID做个UNIQUE约束(比如表1),然后表2的departmentID作为表1 departmentID的外键就可以了,否则是有可能无法创建外键,再者再创建的时候加上with nocheck(如果表中已有数据的话)
--小F-- 2011-06-03
  • 打赏
  • 举报
回复
可以设置自增id
但是主键和外键不一定要用自增id
mingpei0703 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jyh070207 的回复:]
先要求录入表一的资料,将表一的departmentID设为表二的外键
[/Quote]
对于一致性,这是最简单、常用的方法
lds1ove 2011-06-03
  • 打赏
  • 举报
回复
出了id 在家一个code
jyh070207 2011-06-03
  • 打赏
  • 举报
回复
先要求录入表一的资料,将表一的departmentID设为表二的外键
BigInt 2011-06-03
  • 打赏
  • 举报
回复
表1 departmentID设置唯一索引
表2 departmentID设置外键

自动增长字段在这里貌似没有必要性

君_洛洛 2011-06-03
  • 打赏
  • 举报
回复
表一 departmentID 和 表二departmentID如何做一致性约束,除了触发器还有别的好得方法吗? (现在想使用自动ID作为主健,所以主外键约束不好使)


没有谁说一定要主键,才能外键,你可以把TB1的设成唯一约束,TB2的参考就行了
BigInt 2011-06-03
  • 打赏
  • 举报
回复
设置外键不就可以了吗
打一壶酱油 2011-06-03
  • 打赏
  • 举报
回复
这个。
gogodiy 2011-06-03
  • 打赏
  • 举报
回复
表1的departmentID设置唯一性约束,然后和表2的departmentID设置为外键。至于表2的departmentID要不要设置唯一性约束,关键看表2和表1的关系是多对一还是一对一了,如果一对一,表2的departmentID也设置下唯一性约束,否则就不用了。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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