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


相关推荐: HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  JavaScript如何操作视频_媒体API怎么控制播放  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  如何快速搭建高效WAP手机网站?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  php json中文编码为null的解决办法  如何在万网ECS上快速搭建专属网站?  香港服务器租用每月最低只需15元?  js实现获取鼠标当前的位置  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  如何快速上传自定义模板至建站之星?  EditPlus中的正则表达式 实战(2)  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何在IIS中配置站点IP、端口及主机头?  详解jQuery中的事件  深入理解Android中的xmlns:tools属性  如何在搬瓦工VPS快速搭建网站?  如何在宝塔面板中创建新站点?  网站建设整体流程解析,建站其实很容易!  MySQL查询结果复制到新表的方法(更新、插入)  如何用低价快速搭建高质量网站?  如何快速生成凡客建站的专业级图册?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何挑选高效建站主机与优质域名?  Laravel如何创建自定义Artisan命令?(代码示例)  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  手机网站制作与建设方案,手机网站如何建设?  JS去除重复并统计数量的实现方法  图册素材网站设计制作软件,图册的导出方式有几种?  如何快速打造个性化非模板自助建站?  中国移动官方网站首页入口 中国移动官网网页登录  JavaScript中的标签模板是什么_它如何扩展字符串功能  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何快速使用云服务器搭建个人网站?  如何快速搭建支持数据库操作的智能建站平台?  高端网站建设与定制开发一站式解决方案 中企动力  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  北京企业网站设计制作公司,北京铁路集团官方网站?  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  如何用已有域名快速搭建网站?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化