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
执行以上步骤后,会完整的复制表的内容,包括表结构及表数据。