MySQL复制表结构,表结构的三种方法

我们在操作一张表之前,如果怕误删除数据,可以进行事先备份。

一:复制表结构

方法1:

MySQL [test]> create table csvmy like mycsv;   //仅仅复制表结构
Query OK, 0 rows affected (0.03 sec)
MySQL [test]> show  tables;
+----------------+
| Tables_in_test |
+----------------+
| csvmy          |
| mycsv          |
+----------------+

方法2:

MySQL [test]> create table csv select * from mycsv limit 0;
Query OK, 0 rows affected (0.03 sec)    //仅仅复制表结构
Records: 0  Duplicates: 0  Warnings: 0

MySQL [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| csv            |
| csvmy          |
| mycsv          |
+----------------+
3 rows in set (0.01 sec)

方法3:

MySQL [test]> show create table mycsv\G;
*************************** 1. row ***************************
       Table: mycsv
Create Table: CREATE TABLE `mycsv` (
  `id` int(11) NOT NULL,
  `c1` varchar(10) NOT NULL,
  `c2` char(20) NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8mb4
1 row in set (0.00 sec)

获得创建表的sql语句,然后复制语句,修改表名。

二,复制表结构,以及表数据

方法1:

MySQL [test]> create table a select * from mycsv; 
Query OK, 3 rows affected (0.04 sec)
Records: 3  Duplicates: 0  Warnings: 0

MySQL [test]> select * from a;
+----+-----+-----+
| id | c1  | c2  |
+----+-----+-----+
|  1 | aaa | bbb |
|  2 | ccc | ddd |
|  3 | eee | fff |
+----+-----+-----+
3 rows in set (0.01 sec)

方法2:

mysql> create table d select user_name,user_pass from users where id=1;  
Query OK, 1 row affected (0.00 sec)  
Records: 1  Duplicates: 0  Warnings: 0  

方法3:
先创建一个空表, INSERT INTO 新表 SELECT * FROM 旧表 ,或者
INSERT INTO 新表(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM 旧表

你可能感兴趣的:(MySQL复制表结构,表结构的三种方法)