千家信息网

mysql多字段设置唯一约束有什么作用

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本文主要给大家简单讲讲mysql多字段设置唯一约束有什么作用,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql多字段设置唯一约束有什么作用这篇文
千家信息网最后更新 2024年11月24日mysql多字段设置唯一约束有什么作用

本文主要给大家简单讲讲mysql多字段设置唯一约束有什么作用,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql多字段设置唯一约束有什么作用这篇文章可以给大家带来一些实际帮助。


在创建表时设置唯一约束

在定义完列之后直接使用 UNIQUE 关键字指定唯一约束,语法规则如下:

<字段名> <数据类型> UNIQUE

创建数据表 tb_dept2,指定部门的名称唯一,输入的 SQL 语句和运行结果如下所示。

mysql> CREATE TABLE tb_dept2    -> (    -> id INT(11) PRIMARY KEY,    -> name VARCHAR(22) UNIQUE,    -> location VARCHAR(50)    -> );Query OK, 0 rows affected (0.37 sec)mysql> DESC tb_dept2;+----------+-------------+------+-----+---------+-------+| Field    | Type        | Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| id       | int(11)     | NO   | PRI | NULL    |       || name     | varchar(40) | YES  | UNI | NULL    |       || location | varchar(50) | YES  |     | NULL    |       |+----------+-------------+------+-----+---------+-------+3 rows in set (0.08 sec)

提示:UNIQUE 和 PRIMARY KEY 的区别:一个表可以有多个字段声明为 UNIQUE,但只能有一个 PRIMARY KEY 声明;声明为 PRIMAY KEY 的列不允许有空值,但是声明为 UNIQUE 的字段允许空值的存在。

在修改表时添加唯一约束

在修改表时添加唯一约束的语法格式为:

ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);

修改数据表 tb_dept1,指定部门的名称唯一,输入的 SQL 语句和运行结果如下所示。

mysql> ALTER TABLE tb_dept1    -> ADD CONSTRAINT unique_name UNIQUE(name);Query OK, 0 rows affected (0.63 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> DESC tb_dept1;+----------+-------------+------+-----+---------+-------+| Field    | Type        | Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| id       | int(11)     | NO   | PRI | NULL    |       || name     | varchar(22) | NO   | UNI | NULL    |       || location | varchar(50) | YES  |     | NULL    |       |+----------+-------------+------+-----+---------+-------+3 rows in set (0.00 sec)

假设有一个需求是用户给评论点赞,数据库设计是三张表,用户表t_user,评论表t_comment,点赞表t_praise,其中点赞表中有两个外键分别是user_id和comment_id,分别关联用户表的用户id和评论表的评论id,然后规定一个用户只能给同一条评论点赞一次,有一种实现方式就是在插入点赞表之前,先通过user_id和comment_id查询是否有点赞记录,如果没有的话,再执行插入操作,否则返回您已经点过赞了.这样实现的话就会多一次数据库查询操作.更好的实现是,修改点赞表的user_id和comment_id为唯一约束,即这两列不能同时相同,这样在执行插入操作的话,如果已经点过赞了,数据库会抛出违反了唯一键约束,这样的话,就可以避免多一次数据库查询操作了.具体设置多列为唯一约束的语句是:

UNIQUE KEY <唯一约束名>(<列名>,...,<列名n>)
CREATE TABLE `t_praise` (  `id` int(12) unsigned NOT NULL AUTO_INCREMENT,  `comment_id` int(12) NOT NULL,  `user_id` int(12) NOT NULL,  KEY `FK_t_praise_comment` (`comment_id`),  KEY `FK_t_praise_user` (`user_id`),  UNIQUE KEY `UK_praise` (`comment_id`,`user_id`))

mysql多字段设置唯一约束有什么作用就先给大家讲到这里,对于其它相关问题大家想要了解的可以持续关注我们的行业资讯。我们的板块内容每天都会捕捉一些行业新闻及专业知识分享给大家的。


数据 字段 用户 评论 数据库 作用 语句 查询 专业 名称 数据表 结果 行业 语法 部门 用户表 输入 运行 相同 这样的话 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界服务器的猫怎么弄 微软视频软件开发 软件开发许可使用合同 嵌入式软件开发的几个阶段 浪潮信息有多少个机房和服务器 数据库原理与技术微盘下载 筑家易软件开发怎么样 网络技术本 金融机构网络安全知识 软件开发一句话对迭代的理解 戴尔服务器ssh端口是多少 数据库技术相关的职位 长沙智能软件开发团队 饥荒专用服务器可以保存么 敏捷软件开发的优缺点 网络安全风险管理师资培训证书 通信网络技术物联网是干什么的 如何设置ibm服务器的启动顺序 行星边际2服务器叫什么 上海自助点餐机软件开发 自动化专业能做软件开发吗 为什么邮箱总是服务器超时 怎么检查数据库是否为空 数据库中的字典是什么类型 https正向代理服务器 青岛应用软件开发哪家好 河北pdu服务器电源厂家报价 总体国家安全观的网络安全 青岛慧赢网络技术有限公司 数据库导出数据用什么呈现
0