作者BloodyDawn (BigB)
看板Database
标题[SQL ] MySQL的on duplicate与auto_increment
时间Thu Jan 24 22:25:32 2013
最近想做当Unique栏位重复时就不插入该笔记录
我使用的方式是:
a栏位是Unique
INSERT INTO tbl (a, b) VALUES (1, 1)
ON DUPLICATE KEY UPDATE a = VALUES(a), b = VALUES(b);
虽然是用更新的方式,但也同样能达到效果,而且如果资料有更新也
能同时更新
但如果我有一个c栏位设定成auto_increment,不管有没有插入或更新资料
在资料库的AUTO_INCREMENT数字都会增加
换成使用IGNORE的方式:
INSERT IGNORE INTO tbl (a, b) VALUES (1, 1)
这样做MySQL会回应0笔记录被写入,但AUTO_INCREMENT还是被触发了
请问:
有办法让AUTO_INCREMENT在没资料新增(包含只有更新)就不要自动加1吗?
OS:Debian 6
MySQL:5.5 (InnoDB)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.42.226.118
※ 编辑: BloodyDawn 来自: 114.42.226.118 (01/24 22:26)
1F:推 tyba:那auto_increment设高兴的喔?! 02/02 00:49
2F:推 bency:看到楼上就笑了XD 02/26 16:18