十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文给大家分享了好几种复制表结构、表数据的示例介绍,具体详情请看下文吧。
创新互联建站长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为罗城企业提供专业的网站设计制作、成都网站建设,罗城网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
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
(前五条纪录)以上内容就是本文的全部叙述,希望大家喜欢。
1、复制表结构(语法
creata
table
旧表
select
*
from
新表)
create
table
t1(
id
int
unsigned
auto_increment
primary
key,
name
varchar(32)
not
null
default
'',
pass
int
not
null
default
);
desc
查看表结构
创建表
t2
同时复制表
t1
表结构
create
table
t2
select
*
from
t1;
desc
t2
查看表结构
注意:两张的表字段结构一样,但是
主键
primary
key
和
自增
auto_increment
没有了,所以这种方法不推荐大家使用,那如何才能创建出两张完全一样的表呢,办法肯定有的,如下面语句。
create
table
t2
like
t1;
这就可以创建一张
t2
和
t1
完全一样的表了。
2、指定字段复制表结构
语法:
create
table
新表
select
字段1,字段2
…
from
旧表
3、复制表中数据
假设要把表
t1
中的数据全部复制到表
t2中
insert
into
t2
select
* from
t1;
如果只想复制某个字段
insert
into
t2(字段1,字段2)
select
字段1,字段2 from
t1;
mysql拷贝表操作我们会常常用到,下面就为您详细介绍几种mysql拷贝表的方式,希望对您学习mysql拷贝表方面能够有所帮助。
假如我们有以下这样一个表:
id username password
-----------------------------------
1 admin *************
2 sameer *************
3 stewart *************
CREATE TABLE IF NOT EXISTS `admin` ( `id` int(6) unsigned NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(100) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
1. 下面这个语句会拷贝表结构到新表newadmin中。 (不会拷贝表中的数据)
CREATE TABLE newadmin LIKE admin
2. 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表。所以newadmin这个表不会有主键,索引。
CREATE TABLE newadmin AS ( SELECT * FROM admin )
3. 如果你要真正的复制一个表。可以用下面的语句。
CREATE TABLE newadmin LIKE admin; INSERT INTO newadmin SELECT * FROM admin;
4. 我们可以操作不同的数据库。
CREATE TABLE newadmin LIKE shop.admin; CREATE TABLE newshop.newadmin LIKE shop.admin;
5. 我们也可以拷贝一个表中其中的一些字段。
CREATE TABLE newadmin AS ( SELECT username, password FROM admin )
6. 我们也可以讲新建的表的字段改名。
CREATE TABLE newadmin AS ( SELECT id, username AS uname, password AS pass FROM admin )
7. 我们也可以拷贝一部分数据。
CREATE TABLE newadmin AS ( SELECT * FROM admin WHERE LEFT(username,1) = 's' )
8. 我们也可以在创建表的同时定义表中的字段信息。
1、打开navicat软件,打开要复制表的数据库,如下图所示:
2、点击上方的“工具-数据传输”,如下图所示:
3、进去之后,左边选择的是要复制的表的数据库,右边选择的将表复制到目标数据库,如下图所示:
4、打开左边数据库对象中的“表”,选择要复制哪几张表,点击开始。
5、点击开始,会弹出一个框,点击是,等待一下,出现如下界面,复制成功,点击“关闭”。
6、可以看到表已经复制到另外一个数据库上了,如下图所示: