题解 | #插入记录(二)#
插入记录(二)
https://www.nowcoder.com/practice/9681abf28745468c8adacb3b029a18ce
# 解法1. insert into exam_record_before_2021 select null,uid,exam_id,start_time,submit_time,score from exam_record as t1 where year(t1.submit_time)<2021 解法2. # INSERT INTO # exam_record_before_2021 (uid, exam_id, start_time, submit_time, score) # SELECT # uid, # exam_id, # start_time, # submit_time, # score # FROM # exam_record # WHERE # YEAR(submit_time) < 2021;
这里用到了从一张表中查询数据insert到另一张表的知识:
insert into table1 select * from table2
在运行成功的结果中提到了两个解法,一个是在要插入数据的表中指定列,这是因为表2中有些列和表1不符,该题表1和表2的主键id是自增的,但是从表2筛选数据到表1,id这列就要重新传入值,不能用表2的值。
- 主键自增的情况下可以不传入值,也可以传入null值。