一、应用
当插入数据时,要判断一行的主键或者唯一键是否存在,存在则更新指定的信息,不存在则插入。
语法:
INSERT ... ON DUPLICATE KEY UPDATE
二、使用
目的,将windows_copy1表数据与windows表数据做对比,将windows_copy1更新或插入到windows表。测试ON DUPLICATE KEY UPDATE 用法。
2-1 只有主键时
1、示例数据生成
windows表数据生成
CREATE TABLE `windows` (
`id` smallint unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`val` smallint DEFAULT NULL,
`flag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
INSERT INTO `springsecurity`.`windows` (`id`, `name`, `val`, `flag`) VALUES (1, 'windows1', 1, '0');
INSERT INTO `springsecurity`.`windows` (`id`, `name`, `val`, `flag`) VALUES (2, 'windows1', 3, '1');
INSERT INTO `springsecurity`.`windows` (`id`, `name`, `val`, `flag`) VALUES (3, 'windows1', 4, '2');
INSERT INTO `springsecurity`.`windows` (`id`, `name