1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - MySQL - 正文

君子好学,自强不息!

如何复制MySQL 表

2022-03-22 | MySQL | gtxyzz | 897°c
A+ A-

如果我们需要完全的复制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)


本文来源:1818IP

本文地址:https://www.1818ip.com/post/749.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。