如何正确使用UNIQUE索引?

klo*_*lox 0 mysql duplicate-data unique-index

我在DB.i有4个字段,设置它们变得无法重复输入.它们是:

1. Model     Varchar(14)     Unique
2. Serial    varchar(8)      Unique
3. Lot       varchar(5)      Unique
4. Line      char(5)         Unique


                    Model         Serial             Lot             Line
First data        remocon         x0001              033a            fa 01
Run Code Online (Sandbox Code Playgroud)

如果我输入相同的数据则无法记录.

 remocon         x0001              033a            fa 01
Run Code Online (Sandbox Code Playgroud)

但如果我输入如下,如何使这个数据成功输入:

remocon        x0002        033a            fa 01
Run Code Online (Sandbox Code Playgroud)

我想要的结果如下:

 Model         Serial             Lot             Line
remocon         x0001             033a            fa 01
remocon         x0002             033a            fa 01
Run Code Online (Sandbox Code Playgroud)

Mic*_*sov 6

您需要为所有字段添加唯一约束,而不是为每个字段添加唯一约束

独特(型号,系列,批次,线)

解:

CREATE TABLE YourTable
(
 Model     Varchar(14)     NOT NULL,
 Serial    varchar(8)      NOT NULL,
 Lot       varchar(5)      NOT NULL,
 Line      char(5)         NOT NULL,
 unique    (model, serial, lot, line) 
Run Code Online (Sandbox Code Playgroud)

)

对于现有表格:

 alter table YourTableName drop index model;
 alter table YourTableName drop index serial;
 alter table YourTableName drop index lot;
 alter table YourTableName drop index line;
 alter table YourTableName add unique (model, serial, lot, line); 
Run Code Online (Sandbox Code Playgroud)