Home >Database >Mysql Tutorial >MySQL中两种快速创建空表的方式的区别_MySQL

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

WBOY
WBOYOriginal
2016-06-01 14:00:58876browse

在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>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn