MySQL 復(fù)制表
mysql 復(fù)制表
我們通常使用 create table select 語句來復(fù)制表的結(jié)構(gòu)和數(shù)據(jù),但是這種方式復(fù)制的表結(jié)構(gòu)并不完整,索引、默認值等屬性的定義都會丟失。
本文將提供一種完整的復(fù)制 mysql 數(shù)據(jù)表的方法,步驟如下:
- 1. 使用 show create table 命令獲取創(chuàng)建表的語句,該語句包含了數(shù)據(jù)表的完整結(jié)構(gòu)。
- 2. 復(fù)制創(chuàng)建表的 sql 語句,修改表名,然后執(zhí)行sql語句。
- 使用 insert into ... select 語句復(fù)制表的數(shù)據(jù)。
mysql 復(fù)制表的范例
以下為復(fù)制表 yapf_tbl的操作。
1)步驟一:獲取數(shù)據(jù)表的完整結(jié)構(gòu)
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語句的數(shù)據(jù)表名,并執(zhí)行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 語句復(fù)制表的數(shù)據(jù)
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
執(zhí)行以上步驟后,會完整的復(fù)制表的內(nèi)容,包括表結(jié)構(gòu)及表數(shù)據(jù)。