简体   繁体   English

如何确保mysql表中没有重复项?

[英]How do I make sure there are no duplicates in a mysql table?

Suppose I have 2 fields: first_name and last_name . 假设我有2个字段: first_namelast_name

It is ok to have first name duplicate, or last name duplicate, but, if both first_name and last_name are the same, do not insert! 可以重复使用名字或姓氏,但是,如果first_namelast_name相同,则不要插入! It's like 2 unique keys, linked. 就像链接的两个唯一键一样。

在合并的字段上创建唯一索引:

ALTER `mytable` ADD UNIQUE (`first_name`,`last_name`);

如果该表已经存在,则可以对其进行更改以添加一个复合唯一键:

ALTER `table_name` ADD UNIQUE (`first_name`,`last_name`);

All you need is an index which combines both fields. 您所需要做的就是结合两个字段的索引。 Here's a sample table definition: 这是一个示例表定义:

CREATE TABLE IF NOT EXISTS `people` (
  `first` varchar(30) NOT NULL,
  `last` varchar(30) NOT NULL,
  UNIQUE KEY `myIndex` (`first`,`last`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

You can do that by adding a unique constraint: 您可以通过添加唯一约束来做到这一点:

CREATE TABLE People
(
  First_Name VARCHAR(32),
  Last_Name VARCHAR(32),
  UNIQUE (First_name, Last_Name)
);

您只需要向表中添加一个由以下两个字段组成的唯一索引:

ALTER TABLE `your_table` ADD UNIQUE `uniq_name` ( `First_name` , `Last_name` ) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM