【SQL234】题解 | 批量插入数据,不使用replace操作
批量插入数据,不使用replace操作
https://www.nowcoder.com/practice/153c8a8e7805400ba8e384e03acc6b3e
insert ignore into actor (actor_id, first_name, last_name, last_update) values (3, 'ED', 'CHASE', '2006-02-15 12:34:33'); /*INSERT IGNORE: INSERT IGNORE 是 MySQL 的一个特性,它会在插入数据时忽略主键冲突或其他唯一性约束冲突。 如果插入的记录会导致主键冲突(如 actor_id 已存在),该语句不会报错,而是直接忽略插入操作。 INSERT IGNORE 是一个非常实用的语句,用于在插入数据时避免主键冲突或其他唯一性约束冲突,同时不会报错。这种方法非常适合处理批量插入数据时可能出现的重复记录问题。 */
拓展-其他插入语句【摘自官方题解】
1. INSERT INTO
INSERT INTO 是最基本的插入语句,用于向表中插入新数据。如果插入的数据违反了主键或唯一约束,INSERT INTO 会报错并中断操作。
语法:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
行为:
- 如果插入的数据没有违反任何约束,数据会被成功插入。
- 如果插入的数据违反了主键或唯一约束,操作会失败并报错。
2. REPLACE
REPLACE 是 MySQL 中的一个扩展语句,用于插入数据。如果插入的数据违反了主键或唯一约束,REPLACE 会先删除旧记录,然后插入新记录。
语法:
REPLACE INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
行为:
- 如果插入的数据没有违反任何约束,数据会被直接插入。
- 如果插入的数据违反了主键或唯一约束,REPLACE 会删除旧记录,然后插入新记录。
总结:三种插入方法的区别
SQL学习专栏 文章被收录于专栏
发个sql学习和实践的小记录
携程成长空间 146人发布
查看9道真题和解析