使用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