千家信息网

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

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文主要给大家简单讲讲mysql多字段设置唯一约束有什么作用,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql多字段设置唯一约束有什么作用这篇文
千家信息网最后更新 2026年11月02日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安全错误 数据库的锁怎样保障安全 西安纸贵互联网科技有限公司 新华互联网科技学院 互联网科技金融公司 中国互联网科技发展 狮子座互联网科技有限公司 科技创新互联网企业 美国互联网黑科技 掌上梦互联网科技 深圳市运趣互联网科技有限公司 云创客互联网科技公司 中盈科技互联网信息有限公司 顶级互联网科技成果有哪些 玉溪互联网科技怎么选 群盈汇互联网科技有限公司 北京市互联网新科技 杭州披云加互联网科技有限公司 半导体行业属于互联网高科技类吗 宁波跨境商互联网科技有限公司 互联网科技新闻 互联网科技的前景 融势互联网科技 睿民互联网科技 互联网科技视频素材 广州恒生互联网科技有限 全球顶尖互联网科技公司 搜狐科技互联网 烟台灵鸽互联网科技有限公司 互联网科技圈年度人物 吉林省码上互联网科技电话 陕西九四连强互联网科技有限公司
0