广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    MySQL中两种快速创建空表的方式的区别

    2018-04-13 09:18:07 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布

      在MySQL中有两种方法

      1、create table t_name select ...

      2、create table t_name like ...

      第一种会取消掉原来表的有些定义,且引擎是系统默认引擎。

      手册上是这么讲的:Some conversion of data types might occur. For example, the AUTO_INCREMENT attribute is not preserved, and VARchar columns can become char columns.

      第二种就完全复制原表。

      先建立测试表:

    mysql> create database dbtest;
    Query OK, 1 row affected (0.03 sec)
    mysql> use dbtest;
    Database changed
    mysql> create table t_old
    -> (
    -> id serial,
    -> content varchar(8000) not null,
    -> `desc` varchar(100) not null)
    -> engine innodb;
    Query OK, 0 rows affected (0.04 sec)
    mysql> show create table t_old;
    +-------+-------------------------------------------------+
    | Table | create Table |
    +-------+------------------------------------------------+
    | t_old | create TABLE `t_old` (
    `id` bigint(20) unsigned NOT NULL auto_increment,
    `content` varchar(8000) NOT NULL,
    `desc` varchar(100) NOT NULL,
    UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT charSET=latin1 |
    +-------+----------------------------------------------------+
    1 row in set (0.00 sec)

      第一种方式:

    mysql> create table t_select select * from t_old where 1 = 0;
    Query OK, 0 rows affected (0.04 sec)
    Records: 0 Duplicates: 0 Warnings: 0
    mysql> show create table t_select;
    +----------+--------------------------------------------+
    | Table | create Table +----------+---------------------------------------------+
    | t_select | create TABLE `t_select` (
    `id` bigint(20) unsigned NOT NULL default ’0’,
    `content` varchar(8000) NOT NULL,
    `desc` varchar(100) NOT NULL
    ) ENGINE=MyISAM DEFAULT charSET=latin1 |
    +----------+-------------------------------------------+
    1 row in set (0.00 sec)

      第二种方式:

    mysql> create table t_like like t_old;
    Query OK, 0 rows affected (0.02 sec)
    mysql> show create table t_like;
    +--------+-------------------------------------------------+
    | Table | create Table |
    +--------+-------------------------------------------------+
    | t_like | create TABLE `t_like` (
    `id` bigint(20) unsigned NOT NULL auto_increment,
    `content` varchar(8000) NOT NULL,
    `desc` varchar(100) NOT NULL,
    UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT charSET=latin1 |
    +--------+-------------------------------------------------+
    1 row in set (0.00 sec)
    mysql>

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告