mysql如何复制数据到同一张表?

mysql如何复制数据到同一张表?,第1张

在利用数据库开发时,常常会将一些表之间的数据互相导入。当然可以编写程序实现,但是,程序常常需要开发环境,不方便。最方便是利用sql语言直接导入。既方便而修改也简单。以下就是导入的方法。

1、 表结构相同的表,且在同一数据库(如,table1,table2)

Sql :

复制代码代码如下:

insert into table1 select *from table2 (完全复制)

insert into table1 select distinct * from table2(不复制重复纪录)

insert into table1 select top 5 * from table2 (前五条纪录)

2、不在同一数据库中(如,db1 table1,db2 table2)

sql:

[code]

insert into db1.table1 select *from db2.table2 (完全复制)

insert into db1.table1 select distinct * from db2table2(不复制重复纪录)

insert into tdb1.able1 select top 5 * from db2table2 (前五条纪录)

3、表结构不同的表或复制部分纪录(如,dn_user,dn_user2)

a. 建一个新表[DN_UserTemp](在老表dn_user上增加一列)

复制代码代码如下:

CREATE TABLE [DN_UserTemp] ( [Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL)

[Id] [idtype] NOT NULL ,

[Name] [fntype] NOT NULL ,

[Descript] [dstype] NULL ,

[LogonNm] [idtype] NOT NULL ,

[Password] [idtype] NULL ,

[Gender] [char] (1) NULL ,

[Quited] [booltype] NOT NULL,

[OffDuty] [booltype] NOT NULL ,

[Stopped] [booltype] NOT NULL,

[OSBind] [booltype] NOT NULL,

[Domain] [idtype] NULL ,

[EMail] [fntype] NULL ,

[UnitId] [idtype] NULL ,

[BranchId] [idtype] NULL ,

[DutyId] [idtype] NULL ,

[LevelId] [idtype] NULL ,

[ClassId] [idtype] NULL ,

[TypeId] [idtype] NULL ,

[IP] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,

[ExpireDT] [datetime] NULL ,

[Sort] [int] NOT NULL ,

[AllowDel] [booltype] NOT NULL,

[UnitChief] [booltype] NOT NULL,

[BranchChief] [booltype] NOT NULL ,

[UnitDeputy] [booltype] NOT NULL ,

[BranchDeputy] [booltype] NOT NULL ,

[Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL

) ON [PRIMARY]

b. 将dn_uer2的数据拷入dn_usertemp

sql:insert into dn_usertemp select * from dn_user2

c.将dn_usertemp 拷入dn_user

sql:

复制代码代码如下:

declare @i int

declare @j int

declare @Name fntype

set @i=1

select @j=count(*) from dn_usertemp

while @i<@j 1

begin

select @Name=Name from dn_usertemp where Num=@i

print @Name

insert into dn_user (Name) values (@Name) where Num=@i

select @i=@i 1

end

MySql数据库复制表数据

将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下:

复制代码代码如下:

CREATE TABLE mytbl_new LIKE production.mytbl

INSERT mytbl_new SELECT * FROM production.mytbl

第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构。

第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new 。

注:production.mytbl是指定要复制表的数据库名称为 production 。它是可选的。

假如没有production. ,MySQL数据库将会假设mytbl在当前 *** 作的数据库。

另外:在mysql数据库中复制数据为:

复制代码代码如下:

select * into desTable from sourceTable在mssql中支持,在mysql中不支持

insert into desTable select * from sourceTable

本文给大家分享了好几种复制表结构、表数据的示例介绍,具体详情请看下文吧。

1、复制表结构及数据到新表

CREATE

TABLE

新表SELECT

*

FROM

旧表

这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete

from

newtable来删除。

不过这种方法的一个最不好的地方就是新表中没有了旧表的primary

key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。

2、只复制表结构到新表

CREATE

TABLE

新表SELECT

*

FROM

旧表WHERE

1=2

或CREATE

TABLE

新表LIKE

旧表

3、复制旧表的数据到新表(假设两个表结构一样)

INSERT

INTO

新表SELECT

*

FROM

旧表

4、复制旧表的数据到新表(假设两个表结构不一样)

INSERT

INTO

新表(字段1,字段2,.......)

SELECT

字段1,字段2,......

FROM

旧表

5、可以将表1结构复制到表2

SELECT

*

INTO

表2

FROM

表1

WHERE

1=2

6、可以将表1内容全部复制到表2

SELECT

*

INTO

表2

FROM

表1

7、

show

create

table

旧表

这样会将旧表的创建命令列出。我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表

8、mysqldump

用mysqldump将表dump出来,改名字后再导回去或者直接在命令行中运行

9、复制旧数据库到新数据库(复制全部表结构并且复制全部表数据)

#mysql

-u

root

-ppassword

>CREATE

DATABASE

new_db

#mysqldump

old_db

-u

root

-ppassword--skip-extended-insert

--add-drop-table

|

mysql

new_db

-u

root

-ppassword

10、表不在同一数据库中(如,db1

table1,

db2

table2)

sql:

insert

into

db1.table1

select

*

from

db2.table2

(完全复制)

insert

into

db1.table1

select

distinct

*

from

db2.table2(不复制重复纪录)

insert

into

tdb1.able1

select

top

5

*

from

db2.table2

(前五条纪录)以上内容就是本文的全部叙述,希望大家喜欢。


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

原文地址:https://54852.com/zaji/8471463.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存