MYSQL 如何把查询到的结果插入到另一个表中?

MYSQL 如何把查询到的结果插入到另一个表中?,第1张

语句:INSERT INTO  目标表  SELECT  * FROM  来源表

也可以先查询出结果保存下来,再把保存的值放到insert语句。

MySQL 是一个关系型数据库,目前属于 Oracle

旗下公司。MySQL是开放源码软件,因此可以大大降低总体拥有成本。支持多线程,充分利用CPU资源。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。支持大型的数据库。可以处理拥有上千万条记录的大型数据库

其实很简单,只是为了忘记,做个记录,用的时候方便。

不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段

本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中。此方法对于SQLServer数据库,也就是T-SQL来说,同样适用 。

类别一、 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法:

INSERT INTO  目标表  SELECT  * FROM  来源表

例如,要将 articles 表插入到 newArticles 表中,则可以通过如下SQL语句实现:

INSERT INTO  newArticles  SELECT  * FROM  articles

类别二、 如果只希望导入指定字段,可以用这种方法:

INSERT INTO  目标表 (字段1, 字段2, ...)  SELECT   字段1, 字段2, ...   FROM  来源表

请注意以上两表的字段必须一致,否则会出现数据转换错误。

INSERT INTO TPersonnelChange(

    UserId,

    DepId,

    SubDepId,

    PostionType,

    AuthorityId,

    ChangeDateS,

    InsertDate,

    UpdateDate,

    SakuseiSyaId

)SELECT

    UserId,

    DepId,

    SubDepId,

    PostionType,

    AuthorityId,

    DATE_FORMAT(EmployDate, '%Y%m%d'),

    NOW(),

    NOW(),

    1

FROM

    TUserMst

WHERE

    `Status` = 0

AND QuitFlg = 0

AND UserId > 2

1、准备两张表person和person_old。

2、往person_old表中添加两条记录。

3、将person_old表中的所有数据转移到person表中。

4、对上述查询结果进行分析发现,id值不连续,中间断了。其实可以只添加后面三个字段。

5、添加后的结果如下,因没有指定id,所以id按照表规则自动生成。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11680659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存