
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
(前五条纪录)以上内容就是本文的全部叙述,希望大家喜欢。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)