如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的。
本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:
●使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。
●复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。
●如果你想复制表的内容,你就可以使用 INSERT INTO ... SELECT 语句来实现。
实例
尝试以下实例来复制表 gtxyzz_tbl 。
步骤一:
获取数据表的完整结构。
mysql> SHOW CREATE TABLE gtxyzz_tbl \G; *************************** 1. row *************************** Table: gtxyzz_tbl Create Table: CREATE TABLE `gtxyzz_tbl` ( `gtxyzz_id` int NOT NULL AUTO_INCREMENT, `gtxyzz_title` varchar(100) NOT NULL, `gtxyzz_author` varchar(40) NOT NULL, `submission_date` date DEFAULT NULL, PRIMARY KEY (`gtxyzz_id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 1 row in set (0.01 sec) ERROR: No query specified
步骤二:
修改SQL语句的数据表名,并执行SQL语句。
mysql> CREATE TABLE `clone_tbl` ( -> `gtxyzz_id` int(11) NOT NULL auto_increment, -> `gtxyzz_title` varchar(100) NOT NULL default '', -> `gtxyzz_author` varchar(40) NOT NULL default '', -> `submission_date` date default NULL, -> PRIMARY KEY (`gtxyzz_id`), -> UNIQUE KEY `AUTHOR_INDEX` (`gtxyzz_author`) -> ) ENGINE=InnoDB; Query OK, 0 rows affected (1.80 sec)
可以查看一下
mysql> SHOW TABLES; +-------------------------+ | Tables_in_gtxyzz | +-------------------------+ | alter_tbl | | clone_tbl | | employee_tbl | | gtxyzz_tbl | | gtxyzz_test_tbl | | gtxyzz_transaction_test | | gtxyzz_yl | | gtxyzz_ylb | | tcount_tbl | +-------------------------+ 9 rows in set (0.00 sec) mysql> SELECT * FROM clone_tbl ; Empty set (0.00 sec)
以上表没有数据
步骤三:
执行完第二步骤后,你将在数据库中创建新的克隆表 clone_tbl。 如果你想拷贝数据表的数据你可以使用 INSERT INTO... SELECT 语句来实现。
clone_tbl
mysql> INSERT INTO clone_tbl -> (gtxyzz_id, -> gtxyzz_title, -> gtxyzz_author, -> submission_date) -> SELECT gtxyzz_id,gtxyzz_title, -> gtxyzz_author,submission_date -> FROM gtxyzz_tbl; Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM clone_tbl ; +-----------+--------------+---------------+-----------------+ | gtxyzz_id | gtxyzz_title | gtxyzz_author | submission_date | +-----------+--------------+---------------+-----------------+ | 1 | 学习 MySQL | MySQL教程 | 2022-03-21 | | 2 | 学习css | css教程 | 2022-03-20 | | 3 | 学习 SQL | SQL教程 | 2022-01-01 | | 4 | 学习 Java | Java教程 | 2022-03-21 | +-----------+--------------+---------------+-----------------+ 4 rows in set (0.00 sec)
相关文章
标签:mysql