MySQL 复制表
mysql 复制表
我们通常使用 create table select 语句来复制表的结构和数据,但是这种方式复制的表结构并不完整,索引、默认值等属性的定义都会丢失。
本文将提供一种完整的复制 mysql 数据表的方法,步骤如下:
- 1. 使用 show create table 命令获取创建表的语句,该语句包含了数据表的完整结构。
- 2. 复制创建表的 sql 语句,修改表名,然后执行sql语句。
- 使用 insert into ... select 语句复制表的数据。
mysql 复制表的范例
以下为复制表 yapf_tbl的操作。
1)步骤一:获取数据表的完整结构
mysql> show create table yapf_tbl \g;
*************************** 1. row ***************************
table: yapf_tbl
create table: create table `yapf_tbl` (
`yapf_id` int(11) not null auto_increment,
`yapf_title` varchar(100) not null default '',
`yapf_author` varchar(40) not null default '',
`submission_date` date default null,
primary key (`yapf_id`),
unique key `author_index` (`yapf_author`)
) engine=innodb
1 row in set (0.00 sec)
error:
no query specified
2)步骤二:修改sql语句的数据表名,并执行sql语句。
mysql> create table `clone_tbl` ( -> `yapf_id` int(11) not null auto_increment, -> `yapf_title` varchar(100) not null default '', -> `yapf_author` varchar(40) not null default '', -> `submission_date` date default null, -> primary key (`yapf_id`), -> unique key `author_index` (`yapf_author`) -> ) engine=innodb; query ok, 0 rows affected (1.80 sec)
3)步骤三:使用 insert into... select 语句复制表的数据
mysql> insert into clone_tbl (yapf_id,
-> yapf_title,
-> yapf_author,
-> submission_date)
-> select yapf_id,yapf_title,
-> yapf_author,submission_date
-> from yapf_tbl;
query ok, 3 rows affected (0.07 sec)
records: 3 duplicates: 0 warnings: 0
执行以上步骤后,会完整的复制表的内容,包括表结构及表数据。


