千家信息网

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安全错误 数据库的锁怎样保障安全 深信服服务器后台重启网卡命令 Doris可以外接数据库 西北大学计算机网络技术专业 软件开发ci和ce的区别 网络云中存储服务器网卡配置 关系型数据库表规则 计算量评估 服务器 商贸宝开账后如何入数据库 思讯商锐9.5数据库在哪 软件开发合同应该注意关键点 重庆旺游互联网科技有限公司 软件开发游戏难不难 电子产品软件开发公司介绍 盐城企业软件开发中心 计算机网络技术理科不好能学吗 计算机网络技术可以报网络工程吗 广州软件开发培训机构排名 网络安全策略类型 学生学习机器学习租服务器显卡 上海夺汇网络技术有限公司区号 黄冈启鸿网络技术公司 内蒙古gps时钟监控网关服务器 emqx数据库规则设计 局域网服务器ip地址段设置 如何搭建图片服务器 杭州应用软件开发教程 如何进入手机上的数据库 软件开发与java神魔关系 2018网络安全题库软件 广州智传软件开发有限公司
0