• mysql 复制表结构、表数据的方法


    From: http://blog.163.com/yaoyingying681@126/blog/static/109463675201191173221759/

     

    MySQL 添加列,修改列,删除列的sql语句写法

    ALTER TABLE:添加,修改,删除表的列,约束等表的定义。

    • 查看列:desc 表名;
    • 修改表名:alter table t_book rename to bbb;
    • 添加列:alter table 表名 add column 列名 varchar(30);
    • 删除列:alter table 表名 drop column 列名;
    • 修改列名: alter table bbb change nnnnn hh int;
    • 修改列属性:alter table t_book modify name varchar(22);

     

    一,复制表结构
    方法1:
    mysql> create table a like users;         //复制表结构 
    Query OK, 0 rows affected (0.50 sec)  
    mysql> show tables;  
    +----------------+  
    | Tables_in_test |  
    +----------------+  
    | a              |  
    | users          |  
    +----------------+  
    2 rows in set (0.00 sec) 
    mysql> create table a like users;         //复制表结构
    Query OK, 0 rows affected (0.50 sec)
    mysql> show tables;
    +----------------+
    | Tables_in_test |
    +----------------+
    | a              |
    | users          |
    +----------------+
    2 rows in set (0.00 sec)

    方法2:
    mysql> create table b select * from users limit 0;   //复制表结构 
    Query OK, 0 rows affected (0.00 sec)  
    Records: 0  Duplicates: 0  Warnings: 0  
    mysql> show tables;  
    +----------------+  
    | Tables_in_test |  
    +----------------+  
    | a              |  
    | b              |  
    | users          |  
    +----------------+  
    3 rows in set (0.00 sec) 
    mysql> create table b select * from users limit 0;   //复制表结构
    Query OK, 0 rows affected (0.00 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    mysql> show tables;
    +----------------+
    | Tables_in_test |
    +----------------+
    | a              |
    | b              |
    | users          |
    +----------------+
    3 rows in set (0.00 sec)

    方法3:
    mysql> show create table usersG;          //显示创表的sql  这里也可以用 desc users;显示表的结构
    *************************** 1. row ***************************  
    Table: users  
    Create Table: CREATE TABLE `users` (       //改表名 
    `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,  
    `user_name` varchar(60) NOT NULL DEFAULT '',  
    `user_pass` varchar(64) NOT NULL DEFAULT '',  
    PRIMARY KEY (`ID`)  
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8  //改auto_increment 
    1 row in set (0.00 sec) 
    mysql> show create table usersG;          //显示创表的sql
    *************************** 1. row ***************************
    Table: users
    Create Table: CREATE TABLE `users` (       //改表名
    `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    `user_name` varchar(60) NOT NULL DEFAULT '',
    `user_pass` varchar(64) NOT NULL DEFAULT '',
    PRIMARY KEY (`ID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8  //改auto_increment
    1 row in set (0.00 sec)把sql语句copy出来,改一下表名和atuo_increment,然后在执行一下。
    二,复制表数据,以及表结构
    方法1:
    mysql> create table c select * from users;      //复制表的sql 
    Query OK, 4 rows affected (0.00 sec)  
    Records: 4  Duplicates: 0  Warnings: 0 
    mysql> create table c select * from users;      //复制表的sql
    Query OK, 4 rows affected (0.00 sec)
    Records: 4  Duplicates: 0  Warnings: 0

    方法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 
    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上面的2种方法,方便,快捷,灵活性强。
    方法3:
    先创建一个空表, INSERT INTO 新表 SELECT * FROM 旧表 ,或者
    INSERT INTO 新表(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM 旧表
    这种方法不是很方便,也是我以前经常用的。

  • 相关阅读:
    Java SE(2)
    Java SE(1)
    第二次作业
    Markdown 进阶
    关于主题
    Markdown入门指南
    网络游戏架构与微服务架构简单对比
    微服务框架的存储架构
    轻量级微服务框架的通信架构
    页面静态化
  • 原文地址:https://www.cnblogs.com/jx270/p/5902748.html
Copyright © 2020-2023  润新知