SQL-插⼊inrt四种⽅式
单条插⼊
INSERTINTO`test`.`exam_record_before_2021`
VALUES
(6,1001,9002,'2020-01-0209:01:01','2020-01-0209:21:01',70);
多条插⼊
INSERTINTO`test`.`exam_record_before_2021`(`id`,`uid`,`exam_id`,`start_time`,`submit_time`,`score`)
VALUES
(2,1001,9002,'2020-01-0209:01:01','2020-01-0209:21:01',70);
全表复制
INSERTINTOexam_record_before_2021SELECT
*
FROM
exam_record
WHERE
YEAR(start_time)<"2021"
ANDscoreISNOTNULL
表部分字段复制
INSERTINTOexam_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(start_time)<"2021"
ANDscoreISNOTNULL
)
带更新的插⼊
这种原理是检测到主键或唯⼀性索引键重复就删除原记录后重新插⼊
REPLACEINTO`test`.`examination_info`(`exam_id`,`tag`,`difficulty`,`duration`,`relea_time`)
VALUES
(9003,'SQL','hard',90,'2021-01-0100:00:00');
掌握replaceinto···values的⽤法
replaceinto跟inrtinto功能类似,不同点在于:replaceinto⾸先尝试插⼊数据到表中,
如果发现表中已经有此⾏数据(根据主键或者唯⼀索引判断)则先删除此⾏数据,然后插⼊新的数据;
否则,直接插⼊新数据。
要注意的是:插⼊数据的表必须有主键或者是唯⼀索引!否则的话,replaceinto会直接插⼊数据,这将导致表中出现重复的数据。
本文发布于:2022-12-31 22:26:49,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/68207.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |