Mysql复制表结构、表数据的方法

Posted by

(一)将旧表复制到新表

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

1、CREATE
TABLE新表
SELECT*
FROM旧表;

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

该语句只是复制表结构以及数据,它不会复制与表关联的其他数据库对象,如索引,主键约束,外键约束,触发器等。

CREATE TABLE 新表SELECT * FROM 旧表

 

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

  1. CREATE TABLE if not exists new_table

  2. SELECT col1, col2, col3

  3. FROM

  4. existing_table

  5. WHERE

  6. conditions;

不过这种方法的一个最不好的地方就是新表中没有了旧表的primary
key、Extra(auto_increment)等属性。需要自己用”alter”添加,而且容易搞错。

2、MySQL 数据库不支持 SELECT … INTO
语句,但支持 INSERT INTO …
SELECT 

2、只复制表结构到新表

其中在使用select
 into 语句与insert into select
语句时,新表要提前建立,并且新表与旧表的字段属性要一样才可以。

CREATE TABLE 新表SELECT * FROM 旧表WHERE 1=2

create
table 新表 like 旧表;

或CREATE TABLE 新表LIKE 旧表

新表建立之后才可以使用下面的两个语句:

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

SELECT * INTO 新表   FROM  旧表;

INSERT INTO 新表SELECT * FROM 旧表

INSERT INTO  新表  SELECT * FROM  旧表;

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

只复制希望的列插入到另一个已存在的表中:

INSERT INTO 新表(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM
旧表

INSERT INTO  新表  (column_name(s))
 SELECT   column_name(s)  FROM  旧表;

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

实例:INSERT INTO Websites (name,
country) SELECT
app_name, country FROM
apps;

SELECT * INTO 表2 FROM 表1 WHERE 1=2

 

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

(二)复制相同表结构

SELECT * INTO 表2 FROM 表1

 

7、 show create table 旧表;

对于mysql的复制相同表结构方法,有create
table as 和create table like 两种

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

create table 新表 like
旧表;

8、mysqldump

create table 新表 as select
* from 旧表 limit 0;

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

二者的区别:

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

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注