今天有人问我用什么方法可以创建空表? 在MYSQL中有两种方法。 1、create table select ... 2、create table like ... 第一种很多人都知道,第二种却很少人用。 第一种有两个缺点 1、第一种会取消掉原来表的有些定义。 手册上是这么讲的: Some conversion of data types might occur. For example, the AUTO_INCREMENT attribute is not preserved, and VARCHAR columns can become CHAR columns. 不过我测试过,只会取消自增属性! 2、引擎是系统默认引擎。
第二种就不会。 我们来看看例子: 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.01 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=utf8 | +-------+------------------------------------+ 1 row in set (0.00 sec)