SQL35 批量插入数据,不使用replace操作

搞清楚题目正在考什么内容。

1. 题目

  • 题目来源:SQL35 批量插入数据,不使用replace操作

  • 题目描述

    题目已经先执行了如下语句:

    drop table if exists actor;
    CREATE TABLE actor (
       actor_id  smallint(5)  NOT NULL PRIMARY KEY,
       first_name  varchar(45) NOT NULL,
       last_name  varchar(45) NOT NULL,
       last_update  DATETIME NOT NULL);
    insert into actor values ('3', 'WD', 'GUINESS', '2006-02-15 12:34:33');
    

    对于表actor插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)

  • 所需结果

    actor_id 	first_name 	 last_name 	 last_update
    '3' 		'ED' 	     'CHASE' 	 '2006-02-15 12:34:33' 
    

2. 题解

考察表格插入,题目要求是忽略可能存在的重复数据,所以需要用到关键字IGNORE

全部字段的插入有两种方法:

# 正解
INSERT IGNORE INTO actor(actor_id, first_name, last_name, last_update)  
VALUES (3, 'ED', 'CHASE', '2006-02-15 12:34:33');

或者简写,因为多写一点就会多一点错误的风险(易错点看下面反思):

# 直接简写
INSERT IGNORE INTO actor VALUES (3, 'ED', 'CHASE', '2006-02-15 12:34:33');

3. 反思:插入数据、引号用法

1、新手易犯的错误:

错误一:表格字段不能加引号

# 错误写法1:表格字段不能加引号
INSERT IGNORE INTO actor ('actor_id', 'first_name', 'last_name', 'last_update')  
VALUES (3, 'ED', 'CHASE', '2006-02-15 12:34:33');

错误二:数字不能加引号

# 错误写法2:数字不能加引号
INSERT IGNORE INTO actor VALUES('3', 'ED', 'CHSE', '2006-02-15 12:34:33');

搞清楚题目正在考什么内容,虽然简单,但是不能马虎。

2、插入的用法

  • INSERT INTO:普通插入
  • INSERT REPLACE INTO:替换插入(如果存在主键或unique数据)
  • INSERT IGNORE INTO INTO:忽略插入(如果存在主键或unique数据)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值