sql insert into select(使用select结果进行insert) 20257558编辑
Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注
资深码农+深耕理财=财富自由
欢迎关注

sql insert into select(使用select结果进行insert)
Created by Marydon on 2022-05-24 10:39
1.情景展示
现在需要将B表的数据插入A表,如何进行快速操作?
2.具体分析
批量插入,我们可以先将数据查询出来,然后再插入到指定表当中;
如何批量插入查询到的数据?
3.解决方案
以mysql进行举例说明
方式一:指定表字段;
当我们需要只往A表的部分字段插入时,使用这种方式;
比如:主键不需要我们手动插入,而是依赖mysql的主键自增属性的时候。
INSERT INTO TABLE_NAME ( CLOUMN1, CLOUMN2, COLUM3,...) SELECT CLOUMN1, CLOUMN2, COLUM3, ... FROM TABLE_NAME2
说明:
当我们往A表插入数据时,使用A表自增键产生值时,会引发A表主键ID不连续的问题,即:下一次新增数据的时候,会造成ID值与批量插入ID的最大值不连续。
具体原因,及解决办法见《mysql 批量修改表主键(不连续变连续)》。
方式二:所有表字段。
当我们需要往A表中插入所有字段(包括主键)时,可以使用这种方式。
INSERT INTO TABLE_NAME select * from TABLE_NAME_bak
说明:这种方式,需要A表和B表的表字段完全保持一致。
说明:
在默认的事务隔离级别下:insert into a select b的操作a表示直接锁表,b表是逐条加锁。
如果要想b表避免全表扫描,我们需要对where后面的条件做索引,让我们的select查询都走索引即可。
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!
相关推荐:
与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。
您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!
↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/16304626.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)