开发者

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

开发者 https://www.devze.com 2022-12-10 22:04 出处:网络
Suppose I have 2 fields: first_name 开发者_Go百科and last_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! It\'s

Suppose I have 2 fields: first_name 开发者_Go百科and last_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! It's like 2 unique keys, linked.


If the table already exists, then you can alter it to add a composite unique key:

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


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)
);


Create a unique index on the combined fields:

ALTER `mytable` 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 just have to add a unique index composed with these two fields to your table:

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

精彩评论

暂无评论...
验证码 换一张
取 消