当前位置:首页 > MySQL教程 > 正文内容

MySQL怎样保证多字段唯一【MySQL教程】,mysql

搜教程4年前 (2019-12-01)MySQL教程173
mysql中有些表偶然需要做一些字段的唯一束缚,固然你也能够在insert前推断有没有的体式格局来防备反复,假如不想分外增添代码来更天真的完成一些字段的唯一束缚,mysql供应了两种体式格局:

引荐课程:MySQL教程。

1.unique key

alter table xx

add unique key no_account(no,collection_account)

2.unique index

alter table xxadd unique no_account_index(no,collection_account);

假设有一个需求是用户给批评点赞,数据库设想是三张表,用户表t_user,批评表t_comment,点赞表t_praise,其中点赞表中有两个外键离别是user_id和comment_id,离别关联用户表的用户id和批评表的批评id,然后划定一个用户只能给统一条批评点赞一次,有一种完成体式格局就是在插进去点赞表之前,先经由过程user_id和comment_id查询是不是有点赞纪录,假如没有的话,再实行插进去操纵,不然返回您已点过赞了.如许完成的话就会多一次数据库查询操纵.更好的完成是,修改点赞表的user_id和comment_id为唯一束缚,即这两列不能同时雷同,如许在实行插进去操纵的话,假如已点过赞了,数据库会抛出违反了唯一键束缚,如许的话,就能够防止多一次数据库查询操纵了.细致设置多列为唯一束缚的语句是:

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怎样保证多字段唯一的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/15943.html

标签: mysql
分享给朋友:

“MySQL怎样保证多字段唯一【MySQL教程】,mysql” 的相关文章

数据库jdbc封装【MySQL教程】,jdbc,数据库,封装

经由几天的勤奋终究搞好了,这个类能够不必管数据库字段,不必写dao类,直接map增添,增添删除和修正,jdbc链接,分享给人人,用的话记得加上衔接池,尊敬原创,转载请说明 package jdbc;import java.sql.Connection;import java.sql.Drive...

MySQL存储历程 游标 错误处理的示例代码【MySQL教程】,MySQL,错误,游标

MySQL存储历程 游标 错误处理的示例代码 --set_account_data 从新生成用户编号 BEGIN DECLARE temp_id INT(8); /*用户id*/ DECLARE t...

mysql中update与insert经常使用详解【MySQL教程】,update,insert,mysql

mysql中update与insert经常使用详解【MySQL教程】,update,insert,mysql

本文主要内容: update更新,batch批量更新 insert 数据到表中,将表中数据插进去到另一个表中 insert ignore疏忽反复数据插进去报错题目 update更新,batch批量更新 set sql_safe_updates=0;# 通例updateup...

Mysql相干操纵有哪些【MySQL教程】,Mysql,哪些,相关

Mysql相干操纵有哪些【MySQL教程】,Mysql,哪些,相关

1》建立数据库:   语法:create database 数据库名;   语法:show databases 检察已存在数据库   举例:    Mysql->create database zytest; 注重每一条要以;号末端     Mysql->show d...

MySQL两大存储引擎InnoDB与MyISAM的区分【MySQL教程】,InnoDB,MySQL,引擎

1.InnoDB存储引擎 MySQL5.5中InnoDB成为默许的存储引擎。InnoDB是事件型存储引擎,被设想用来处置惩罚大批的短时间事件。它的机能和自动崩溃恢复特征,使得它在非事件场景中也很盛行。 所以可以这么说:“除非须要用到某些InnoDB不具备的特征,而且没有其他方法可以替换,...

MySQL慢查询日记相干的设置和运用【MySQL教程】,MySQL,配置,相关

MySQL慢查询日记相干的设置和运用【MySQL教程】,MySQL,配置,相关

MySQL慢查询日记供应了凌驾指定时刻阈值的查询信息,为机能优化供应了重要的参考根据,是一个异常有用的功用,MySQL慢查询日记的开启和设置异常简朴,能够指定纪录的文件(或许表),凌驾的时刻阈值等就能够纪录到慢sql了,真话讲,相比较sqlserver的trace或许扩大事宜(虽然此两者的作用并不...