MySQL 数据存在则更新、存在不操作、不存在则新增
原创
©著作权归作者所有:来自51CTO博客作者风华浪浪的原创作品,请联系作者获取转载授权,否则将追究法律责任
一·、背景
在一些数据入库时,存在则需要更新某些字段;甚至不进行操作;MySQL用法
二、MySQL的用法示例
CREATE TABLE `user` (
`id` bigint unsigned NOT NULL,
`screen_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '姓名',
`gender` tinyint NOT NULL COMMENT '性别1男0女',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '描述信息',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_screen_name` (`screen_name`) USING BTREE COMMENT '用户名唯一索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-
示例一:
存在则不操作, 不存在则插入 :关键词 insert ignore 唯一键unique
INSERT IGNORE INTO USER ( screen_name, gender, description )
VALUES
( '黄老爷', 1, '青天白日黄老爷' )
-
示例二:
insert ignore
表示,如果中已经存在相同的记录,则忽略当前新数据;
insert ignore into table(name) select name from table2