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

作者:Chad 来源:赛迪网 时间:2008-12-17 14:34:00 

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

标签:
0
投稿

猜你喜欢

  • String.indexOf 方法介绍

    2013-06-01 20:22:27
  • MYSQL数据库教程:唯一编号

    2009-02-27 15:27:00
  • 解析:安装 MySQL时如何选择安装软件包

    2008-12-31 17:15:00
  • IE7 与 IE6 的模式窗口尺寸差异

    2008-03-06 13:49:00
  • 网站浏览器兼容的底线

    2007-12-22 11:26:00
  • Access数据库操作中出现的怪现象

    2008-04-24 14:22:00
  • 验证码的最高境界

    2008-05-08 14:17:00
  • 设计提升满意度

    2010-05-16 15:00:00
  • Sql2005启用和关闭xp_cmdshell功能

    2008-09-29 15:37:00
  • asp如何建立和删除文件夹?

    2009-11-26 20:34:00
  • document.createElement()用法及注意事项

    2008-04-21 15:16:00
  • 谈谈我的“分离”观

    2010-08-31 14:47:00
  • 配置高可用性的MySQL服务器负载均衡群集

    2009-01-04 12:43:00
  • ACCESS如何打印窗体中当前显示的记录

    2008-11-20 16:31:00
  • Google Chrome CSS选择器速度测试比较

    2008-10-06 13:24:00
  • asp如何对数组显示和排序?

    2009-11-20 18:30:00
  • IE9初窥:支持CSS3,和HTML5?

    2009-12-01 14:20:00
  • CSS的未来:一些试验性CSS属性

    2011-06-10 13:20:00
  • Sqlserver 2000/2005/2008 的收缩日志方法和清理日志方法

    2012-07-21 14:55:18
  • SQL存储过程介绍

    2008-02-13 18:52:00
  • asp之家 网络编程 m.aspxhome.com