行,所以我有如下表:對重複關鍵詞追加行
CREATE TABLE `Tags` (
`tag_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`tag` varchar(100) DEFAULT NULL,
PRIMARY KEY (`tag_id`),
UNIQUE KEY `tag` (`tag`),
KEY `tag_id` (`tag_id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS=1;
當我運行下面的查詢,它似乎是增加了主鍵,即使它找到重複的(即使它不添加重複)。
INSERT INTO Tags (tag) VALUES ('book'),('cats'),('dogs') ON DUPLICATE KEY UPDATE tag = tag
結果...
tag_id | tag
==============================
1 | book
2 | robots
3 | doodles
5 | cats
6 | dogs
==============================
如何避免這種情況?
沒有什麼可以阻止的。 「auto_increment」的數量已用完。他們從未被重用。這就是它的工作原理,如果它看起來「愚蠢」 - 事實並非如此。如果你試圖「解決」這個問題,你實際上會受到傷害。此外,查詢看起來不合適,它看起來好像您在「INSERT IGNORE」之後。 –