CREATE TABLE `tb` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`uid` INT(11) NOT NULL,
`name` VARCHAR(50) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `uid` (`uid`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
这就是约束键重复的原因,可以先判断一下是否存在再删除也无妨、或者使用
#REPLACEINTO `cinema_crawler`.`tb` (`uid`, `name`) VALUES (12, 'b');
INSERTINTO `cinema_crawler`.`tb` (`uid`, `name`) VALUES (12, 'a') ON DUPLICATE KEY UPDATE name=values(name);
replace into 是先删除后插入!可以同时对一条数据操作,可以看到id是在增长。
ON DUPLICATE KEY UPDATE key=values(key); 是先判断,再修改/插入;id不变。
IGNORE
就是直接忽略约束键,如果有冲突,忽略插入。