使用MySQL 5
我有一张这样的表:
date (varchar)
door (varchar)
shift (varchar)
route (varchar)
trailer (varchar)
+ other fields
这张表包含用户生成的内容(从另一个“主”表中复制而来),为了防止用户创建相同的数据超过1次,该表根据上述指定的字段创建了唯一索引。
问题在于“重复预防”索引不起作用。
用户仍然可以添加重复记录,却没有报错信息。
是因为我没有理解索引的工作原理所以出现了这个问题吗?
还是可能与主键字段(自动递增整数)发生冲突?
CREATE TABLE 如下:
CREATE TABLE /*!32312 IF NOT EXISTS*/ "tableA" (
"Date" varchar(12) default NULL,
"door" varchar(12) default NULL,
"Shift" varchar(45) default NULL,
"route" varchar(20) default NULL,
"trailer" varchar(45) default NULL,
"fieldA" varchar(45) default NULL,
"fieldB" varchar(45) default NULL,
"fieldC" varchar(45) default NULL,
"id" int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY ("id"),
UNIQUE KEY "duplicate_preventer" ("Date","door","Shift","route","trailer"),
一行被复制是指:
date door shift route trailer
10/4/2009 W17 1st Shift TEST-01 NULL
10/4/2009 W17 1st Shift TEST-01 NULL