您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

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

添加时间:2014-2-20 17:23:35  添加: 思海网络 
在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>

关键字:MySQL、引擎、系统

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站