问题描述
亲爱的先生,
当被问及主键和唯一键有什么区别时,人们说
主键不能为NULL,唯一键可以为NULL。
我的问题是,如果我们在唯一键上添加一个不为空的约束,我们可以使用唯一键约束而不是主键?
在什么情况下我们使用主键?
谢谢
比诺·丹尼尔
当被问及主键和唯一键有什么区别时,人们说
主键不能为NULL,唯一键可以为NULL。
我的问题是,如果我们在唯一键上添加一个不为空的约束,我们可以使用唯一键约束而不是主键?
在什么情况下我们使用主键?
谢谢
比诺·丹尼尔
专家解答
您主要指的是主键和唯一约束的 * 实现 *,但从数据定义的角度来看,它们是不同的。主键是我们唯一标识行的方法,这是不可变的。唯一约束是确保表中的某些属性唯一的一种方法。
例如: 在员工表中,主键可能是EMPLOYEE_ID (可能是一个无意义的号码,或者在我的组织内分配的东西),并且每个员工都有公司手机,所以我可能对手机号码有一个唯一的限制。
“那么为什么不把手机作为主键呢?” 是显而易见的问题。嗯,手机会丢失,升级,你可能会更换电话提供商并获得一个新号码等。所以我希望它是独一无二的,但它并不能从根本上定义有问题的员工。
如果您有兴趣,这里的基础索引等上也有一个很好的线程
https://asktom.oracle.com/pls/asktom/asktom.search?tag=difference-between-unique-index-and-primary-key-index
例如: 在员工表中,主键可能是EMPLOYEE_ID (可能是一个无意义的号码,或者在我的组织内分配的东西),并且每个员工都有公司手机,所以我可能对手机号码有一个唯一的限制。
“那么为什么不把手机作为主键呢?” 是显而易见的问题。嗯,手机会丢失,升级,你可能会更换电话提供商并获得一个新号码等。所以我希望它是独一无二的,但它并不能从根本上定义有问题的员工。
如果您有兴趣,这里的基础索引等上也有一个很好的线程
https://asktom.oracle.com/pls/asktom/asktom.search?tag=difference-between-unique-index-and-primary-key-index
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




