zoukankan      html  css  js  c++  java
  • create table like 和create table select 比较

    语法:
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        [(create_definition,...)]
        [table_options] [select_statement]
     
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        [(] LIKE old_tbl_name [)];
    测试过程:
    原数据表:
    mysql> show create table test_order G
    *************************** 1. row ***************************
           Table: test_order
    Create Table: CREATE TABLE `test_order` (
      `pay_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `origin` int(10) DEFAULT NULL,
      `team_id` int(11) DEFAULT NULL,
      `state` int(11) DEFAULT NULL,
      KEY `team_id` (`team_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    1 row in set (0.00 sec)
    mysql> create table cc select * from test_order;
    Query OK, 9900 rows affected (0.11 sec)
    Records: 9900  Duplicates: 0  Warnings: 0
    mysql> create table dd like test_order;                
    Query OK, 0 rows affected (0.22 sec)
    查看数据:
    mysql> select * from cc limit 2;
    +---------------------+--------+---------+-------+
    | pay_time            | origin | team_id | state |
    +---------------------+--------+---------+-------+
    | 2011-06-22 18:04:47 |     10 |     100 |   100 |
    | 2011-06-22 18:04:47 |     10 |     100 |   101 |
    +---------------------+--------+---------+-------+
    2 rows in set (0.00 sec)
    mysql> select * from dd;
    Empty set (0.00 sec)
    结果:cc表中数据与原表test_order中的一致,dd表中无数据
    查看表结构:
    mysql> show create table cc G
    *************************** 1. row ***************************
           Table: cc
    Create Table: CREATE TABLE `cc` (
      `pay_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      `origin` int(10) DEFAULT NULL,
      `team_id` int(11) DEFAULT NULL,
      `state` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    1 row in set (0.00 sec)
    mysql> show create table dd G
    *************************** 1. row ***************************
           Table: dd
    Create Table: CREATE TABLE `dd` (
      `pay_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `origin` int(10) DEFAULT NULL,
      `team_id` int(11) DEFAULT NULL,
      `state` int(11) DEFAULT NULL,
      KEY `team_id` (`team_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    1 row in set (0.00 sec)
    结果:cc表中,原表中的索引消失了;dd表与原表一致
     
    结论:
         create table select 会将原表中的数据完整复制一份,但表结构中的索引会丢失。
         create table like 只会完整复制原表的建表语句,但不会复制数据
  • 相关阅读:
    使用OPC的方式去连接PLC进行AB SLC-5_04数据的采集
    pytest:conftest.py运行细节一则
    《数据结构与算法》和《设计模式》之开门见山篇
    C语言真正的编译过程
    外挂原理之植物大战僵尸
    ORACLE数据库创建动态表
    JS中事件绑定问题
    由 “无法使用从远程表选择的 lob 定位符” 错误而引导出来的一系列问题解决方案
    安装JDK,配置环境变量有感
    MSSQL 常见故障处理
  • 原文地址:https://www.cnblogs.com/Alight/p/4469671.html
Copyright © 2011-2022 走看看