1. 程式人生 > >MySQL避免插入重複記錄:唯一性約束

MySQL避免插入重複記錄:唯一性約束

表結構

CREATE TABLE `t3` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `c1` int(11) NOT NULL,
  `c2` varchar(20) DEFAULT NULL,
  `c3` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `c1` (`c1`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=latin1;

插入測試

表中資料

sql

insert ignore into t3 (c1,c2,c3) values(100,'cc',4),(6,'dd',5);

結果

[SQL] insert ignore into t3 (c1,c2,c3) values(100,'cc',4),(6,'dd',5);
受影響的行: 1
時間: 0.078s

如果把 ignore 刪除,

sql

insert into t3 (c1,c2,c3) values(100,'cc',4),(6,'dd',5);

結果

[SQL] insert into t3 (c1,c2,c3) values(100,'cc',4),(6,'dd',5);
[Err] 1062 - Duplicate entry '100' for key 'c1'