MySQL使用UNIQUE实现数据不重复插入

发布时间 - 2026-01-11 01:12:48    点击率:

SQL UNIQUE 约束

UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

下面的 SQL 在 “Persons” 表创建时在 “Id_P” 列创建 UNIQUE 约束:

CREATE TABLE Persons
(
  Id_P int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  UNIQUE (Id_P)
)

如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:

CREATE TABLE Persons
(
  Id_P int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)

当表已被创建时,如需在 “Id_P” 列创建 UNIQUE 约束,请使用下列 SQL:

ALTER TABLE Persons ADD UNIQUE (Id_P)

如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:

ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

如需撤销 UNIQUE 约束,请使用下面的 SQL:

ALTER TABLE Persons DROP INDEX uc_PersonID

这样每次插入重复记录时MySQL就会提示Duplicate entry value1-value2 for key uni_que,当然你可以在insert的时候加入ignore来忽略掉
现在保证了无重复记录后,我们要开始记录不存在则插入,存在则更新操作

INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...) ON DUPLICATE KEY UPDATE field1='value1', field2='value2', field3='value3', ...

这个语句的意思是,插入值,如果没有该记录执行

INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...)

这一段,如果存在该记录,那么执行

UPDATE field1='value1', field2='value2', field3='value3', ...


# mysql  # unique  # key  # add  # mysql 数据表中查找重复记录  # MySQL根据某一个或者多个字段查找重复数据的sql语句  # mysql查找删除重复数据并只保留一条实例详解  # mysql查询表里的重复数据方法  # MySQL 删除数据库中重复数据方法小结  # MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)  # 很全面的MySQL处理重复数据代码  # MySQL数据库中删除重复记录的方法总结[推荐]  # 分享MYSQL插入数据时忽略重复数据的方法  # 一次现场mysql重复记录数据的排查处理实战记录  # 请使用  # 多个  # 如需  # 就会  # 你可以  # 已被  # 均为  # 如果没有  # 不存在  # 请注意  # 每条  # 则更  # 有一个  # 这一段  # TABLE  # CREATE  # NULL  # sql  # int  # varchar 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何配置任务调度?(Cron Job示例)  如何在橙子建站中快速调整背景颜色?  java ZXing生成二维码及条码实例分享  如何在宝塔面板中创建新站点?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  网站制作软件有哪些,制图软件有哪些?  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Python图片处理进阶教程_Pillow滤镜与图像增强  微信小程序 require机制详解及实例代码  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何用VPS主机快速搭建个人网站?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel如何处理异常和错误?(Handler示例)  新三国志曹操传主线渭水交兵攻略  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  中山网站推广排名,中山信息港登录入口?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  详解Oracle修改字段类型方法总结  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  音响网站制作视频教程,隆霸音响官方网站?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  制作公司内部网站有哪些,内网如何建网站?  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  如何在搬瓦工VPS快速搭建网站?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  JavaScript中的标签模板是什么_它如何扩展字符串功能  如何在阿里云虚拟主机上快速搭建个人网站?  深圳网站制作平台,深圳市做网站好的公司有哪些?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Python制作简易注册登录系统  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  如何彻底卸载建站之星软件?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何用美橙互联一键搭建多站合一网站?  如何快速搭建虚拟主机网站?新手必看指南  动图在线制作网站有哪些,滑动动图图集怎么做?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  linux写shell需要注意的问题(必看)  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Linux系统命令中tree命令详解  php485函数参数是什么意思_php485各参数详细说明【介绍】