使用MySQL 5MySQL - 通过索引阻止表中的重复记录?
我有这样一个表:
date (varchar)
door (varchar)
shift (varchar)
route (varchar)
trailer (varchar)
+ other fields
本表包含用户生成的内容(从另一个“主”表中复制),并防止该用户创建相同的数据更比1x表格具有基于上面指定的字段创建的唯一索引。
问题是“重复预防”索引不起作用。
用户仍然可以添加重复记录,而不会报告错误。
这个问题是由于我不了解索引的工作原理吗?
或者
是否与主键字段(自动增量INT)可能发生的冲突?
的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
显示CREATE TABLE语句,请。 – dnagirl 2009-11-18 18:06:32
你可以发布几行,你认为是重复的吗? – 2009-11-18 18:36:11
你正在使用什么数据库引擎,例如InnoDB或MyISAM? – 2009-11-18 18:37:05