MySQL PRIMARY KEY与UNIQUE约束
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL PRIMARY KEY与UNIQUE约束,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1168字,纯文字阅读大概需要2分钟。
内容图文
![MySQL PRIMARY KEY与UNIQUE约束](/upload/InfoBanner/zyjiaocheng/883/ce57336e6ead4f0e9e132ac644a57992.jpg)
根据MySQL文档,PRIMARY KEY约束和UNIQUE约束之间的区别在于PK约束不允许NULL值,而UQ约束允许NULL值.在MySQL表中,可以在同一列中为一个创建PK和UQ!
>为已经具有PK约束的列创建UNIQUE约束有什么意义?
>为什么MySQL允许为已经具有PK约束的列创建唯一约束?
解决方法:
作为序言,请注意,主键不必是单个列:它可以由多个列组成:这称为复合键.还要注意,并不是每个表都具有AUTO_INCREMENT / IDENTITY列,而且您仍然可以在复合键内的单个列上具有UNIQUE约束.
>没有-但是DBMS禁止这种冗余不是没有道理的,因为您需要增加逻辑和复杂性来处理这种情况,而同时使用这两种方法并没有真正的危害(除了具有维护两个索引).
>如上所述:因为检测和防止冗余的机会成本是不值得的.
要考虑的另一件事是,表的主键定义不是不可变的,因此可能会发生变化.一个表可能已经具有带有UNIQUE约束设置的列,然后数据库设计者决定将其包括在主键的新定义中-用户不友好,要求首先删除旧约束,尤其是如果他们的应用系统的其他部分依赖于那里的UNIQUE约束(例如1:0..1关系定义).
(此外,AUTO_INCREMENT与UNIQUE或PRIMARY KEY不互斥:您可以对非唯一列使用AUTO_INCREMENT(例如,如果在表已经包含数据之后添加AUTO_INCREMENT),相反,PRIMARY KEY可以使用从其他地方获取的唯一值,例如另一个标识列作为外键(复合主键可以包含外键!)或“自然”数据源,例如使用美国社会保险号作为主键(当然,您绝对不应这样做) )).
内容总结
以上是互联网集市为您收集整理的MySQL PRIMARY KEY与UNIQUE约束全部内容,希望文章能够帮你解决MySQL PRIMARY KEY与UNIQUE约束所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。