从源头防重复

与其事后擦屁股,不如在建表时就把重复挡在门外。给该唯一的列加上主键或唯一索引,数据库会在写入时替你拒绝重复值,这是最省心的办法。

从源头防重复要点

从源头防重复示例

						-- 建表时给邮箱加唯一约束
						CREATE TABLE member (
						    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
						    email VARCHAR(80) NOT NULL,
						    phone VARCHAR(20),
						    PRIMARY KEY (id),
						    UNIQUE KEY uk_email (email)
						);

						-- 已有表补唯一索引
						ALTER TABLE member ADD UNIQUE KEY uk_phone (phone);
避坑提醒:唯一索引会拒绝重复写入并抛错,若想'有就跳过、没有才插'用 INSERT IGNORE,错误变警告不中断。
从源头防重复 · 重复数据处理 知识卡片
卡片 02 / 06 · 重复数据处理(1080×1440 速查卡片)

重复数据处理知识点