【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学习和实践的小记录

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务