SQL插入多行数据

文章介绍了在MySQL中如何利用自增主键进行数据插入,包括指定列名避免输入ID、设置NULL让系统自动生成ID,以及处理多行插入、AI类型列和时间间隔操作的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

INSERT INTO tab_name (col_name) VALUES

insert into exam_record values 
(0,1001,9001,'2021-09-01 22:11:12','2021-09-01 23:01:12',90),
(null,1002,9002,'2021-09-04 07:01:02',null,null);

自增主键(PRIMARY KEY),这就意味着不需要你自己手动填入,它会跟随表格行数进行自己增加(比如这样增加id值👉1,2,3...n)。

方法之一: 可以指定插入的列名, 这样就不用填写id这一列的数据,让他自增。

INSERT INTO exam_record (uid, exam_id, start_time, submit_time, score) VALUES
(1001, 9001, '2021-09-01 22:11:12', '2021-09-01 23:01:12', 90),
(1002, 9002, '2021-09-04 07:01:02', NULL, NULL);

方法之二:把id的值设置为null、default或0,这样MySQL会自己处理这个自增的id列。

INSERT INTO exam_record VALUES
(NULL, 1001, 9001, '2021-09-01 22:11:12', '2021-09-01 23:01:12', 90),
(NULL, 1002, 9002, '2021-09-04 07:01:02', NULL, NULL);

注意几点

  1. insert into...values 如果要插入多行,指令是 values <row1>,<row2>...多行之间用逗号隔开;
  2. AI类型的列,在插入时用0/null/default关键字补位,在插入时sql会自动计算各行应有的值;
  3. interval 时间间隔关键字,常和date_add() 或 date_sub()搭配使用。
A.T_DATE = B.T_DATE + interval  1 hour   1小时以后
A.T_DATE = B.T_DATE + interval -1 hour   1小时之前
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值