一·、背景

在一些数据入库时,存在则需要更新某些字段;甚至不进行操作;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​