2012-07-07 77 views
1
CREATE TABLE IF NOT EXISTS `mytable` (
    `machine_no` varchar(50) CHARACTER SET ascii NOT NULL, 
    `date` datetime NOT NULL, 
    `nature` int(11) DEFAULT NULL, 
    `start` time NOT NULL, 
    PRIMARY KEY (`machine_no`,`date`), 
    UNIQUE KEY `date` (`date`), 
    UNIQUE KEY `start` (`start`), 
    UNIQUE KEY `start_2` (`start`), 
    UNIQUE KEY `nature` (`nature`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

此表有一個組合鍵,它說「」重複項」,而在一個複合主鍵的表中插入

當我嘗試插入2條記錄與相同的日期/時間,但machine_no的不同價值。對於重複錄入日期我不明白其原因正如複合鍵,它應該只找了兩個屬性重複條目

回答

1

PRIMARY KEY正常工作:。

PRIMARY KEY (`machine_no`,`date`), 

是什麼原因導致的問題是UNIQUE KEY您有:

UNIQUE KEY `date` (`date`), 

這不允許兩行中插入相同的日期時間。

同樣你的其他3個獨特的按鍵可能會導致你torubles還有:

UNIQUE KEY `start` (`start`), 
UNIQUE KEY `start_2` (`start`), 
UNIQUE KEY `nature` (`nature`) 

所以,讓那些按鍵簡單(不是唯一的)。

並沒有理由有兩個相同的鍵名稱不同(startstart_2