zoukankan      html  css  js  c++  java
  • create table xxx as select 与 create table xxx like

    create table xxx as select xxx,创建新表,没有原表的完整约束,会把原表的数据拷贝一份,如下:
    mysql> desc stu;
    +------------+--------------+------+-----+---------+----------------+
    | Field      | Type         | Null | Key | Default | Extra          |
    +------------+--------------+------+-----+---------+----------------+
    | Id         | int(9)       | NO   | PRI | NULL    | auto_increment |
    | Name       | varchar(100) | NO   |     | NULL    |                |
    | Age        | int(9)       | NO   |     | 0       |                |
    | updatetime | datetime     | YES  |     | NULL    |                |
    +------------+--------------+------+-----+---------+----------------+
    4 rows in set

    mysql> select * from stu;
    +----+------+-----+---------------------+
    | Id | Name | Age | updatetime          |
    +----+------+-----+---------------------+
    |  1 | Andy |  28 | 2015-03-19 15:42:09 |
    +----+------+-----+---------------------+
    1 row in set

    mysql> create table stu2 as select * from stu;
    Query OK, 1 row affected
    Records: 1  Duplicates: 0  Warnings: 0

    mysql> desc stu2;
    +------------+--------------+------+-----+---------+-------+
    | Field      | Type         | Null | Key | Default | Extra |
    +------------+--------------+------+-----+---------+-------+
    | Id         | int(9)       | NO   |     | 0       |       |
    | Name       | varchar(100) | NO   |     | NULL    |       |
    | Age        | int(9)       | NO   |     | 0       |       |
    | updatetime | datetime     | YES  |     | NULL    |       |
    +------------+--------------+------+-----+---------+-------+
    4 rows in set

    mysql> select * from stu2;
    +----+------+-----+---------------------+
    | Id | Name | Age | updatetime          |
    +----+------+-----+---------------------+
    |  1 | Andy |  28 | 2015-03-19 15:42:09 |
    +----+------+-----+---------------------+
    1 row in set

    create table xxx like xxx,创建新表,约束和原表相同,只拷贝表结构,没有拷贝表的数据,如下:
    mysql> desc stu;
    +------------+--------------+------+-----+---------+----------------+
    | Field      | Type         | Null | Key | Default | Extra          |
    +------------+--------------+------+-----+---------+----------------+
    | Id         | int(9)       | NO   | PRI | NULL    | auto_increment |
    | Name       | varchar(100) | NO   |     | NULL    |                |
    | Age        | int(9)       | NO   |     | 0       |                |
    | updatetime | datetime     | YES  |     | NULL    |                |
    +------------+--------------+------+-----+---------+----------------+
    4 rows in set

    mysql> select * from stu;
    +----+------+-----+---------------------+
    | Id | Name | Age | updatetime          |
    +----+------+-----+---------------------+
    |  1 | Andy |  28 | 2015-03-19 15:42:09 |
    +----+------+-----+---------------------+
    1 row in set

    mysql> create table stu3 like stu;
    Query OK, 0 rows affected

    mysql> desc stu3;
    +------------+--------------+------+-----+---------+----------------+
    | Field      | Type         | Null | Key | Default | Extra          |
    +------------+--------------+------+-----+---------+----------------+
    | Id         | int(9)       | NO   | PRI | NULL    | auto_increment |
    | Name       | varchar(100) | NO   |     | NULL    |                |
    | Age        | int(9)       | NO   |     | 0       |                |
    | updatetime | datetime     | YES  |     | NULL    |                |
    +------------+--------------+------+-----+---------+----------------+
    4 rows in set

    mysql> select * from stu3;
    Empty set

    如果我想拷贝表的结构(约束和原表相同),同时拷贝表的数据,怎么办?
    先create table xxx like xxx,创建表结构,再insert into xxx select xxx 拷贝数据。注意:这里没有as
    mysql> desc stu;
    +------------+--------------+------+-----+---------+----------------+
    | Field      | Type         | Null | Key | Default | Extra          |
    +------------+--------------+------+-----+---------+----------------+
    | Id         | int(9)       | NO   | PRI | NULL    | auto_increment |
    | Name       | varchar(100) | NO   |     | NULL    |                |
    | Age        | int(9)       | NO   |     | 0       |                |
    | updatetime | datetime     | YES  |     | NULL    |                |
    +------------+--------------+------+-----+---------+----------------+
    4 rows in set

    mysql> select * from stu;
    +----+------+-----+---------------------+
    | Id | Name | Age | updatetime          |
    +----+------+-----+---------------------+
    |  1 | Andy |  28 | 2015-03-19 15:42:09 |
    +----+------+-----+---------------------+
    1 row in set

    mysql> create table stu4 like stu;
    Query OK, 0 rows affected

    mysql> desc stu4;
    +------------+--------------+------+-----+---------+----------------+
    | Field      | Type         | Null | Key | Default | Extra          |
    +------------+--------------+------+-----+---------+----------------+
    | Id         | int(9)       | NO   | PRI | NULL    | auto_increment |
    | Name       | varchar(100) | NO   |     | NULL    |                |
    | Age        | int(9)       | NO   |     | 0       |                |
    | updatetime | datetime     | YES  |     | NULL    |                |
    +------------+--------------+------+-----+---------+----------------+
    4 rows in set

    mysql> select * from stu4;
    Empty set

    mysql> insert into stu4(name,age,updatetime) select name,age,updatetime from stu;
    Query OK, 1 row affected
    Records: 1  Duplicates: 0  Warnings: 0

    mysql> select * from stu4;
    +----+------+-----+---------------------+
    | Id | Name | Age | updatetime          |
    +----+------+-----+---------------------+
    |  1 | Andy |  28 | 2015-03-19 15:42:09 |
    +----+------+-----+---------------------+
    1 row in set
  • 相关阅读:
    【转】什么是5G?居然有人用漫画把它讲得如此接地气!
    【转】Centos下编译升级安装Boost
    【转】SSH穿越跳板机:一条命令跨越跳板机直接登陆远程计算机
    部署JupyterLab和pyalgotrade搭建web策略回测环境
    [转]Linux中python3.6+ipython+Jupyter Notebook环境
    环境命令备忘
    [转]微软商店 打开就显示无法加载该页面 代码0x80131500?
    [转]Centos 7 安装部署 GitLab 服务器
    [转]本文采用all-in-one(一体化的)安装OpenShift
    [转]Linux编译和安装boost库
  • 原文地址:https://www.cnblogs.com/nzbbody/p/4356254.html
Copyright © 2011-2022 走看看