| 订阅 | 在线投稿
分享
 
 
 

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

2008-06-12 07:23:59 编辑來源:互联网 国际版 评论
 
 
本文为【MySQL中两种快速创建空表的方式的区别】的汉字拼音对照版显示拼音
  zaiMySQLzhongyouliangzhongfangfa

  1create table t_name select ...

  2create table t_name like ...

  diyizhonghuiquxiaodiaoyuanlaibiaodeyouxiedingyiqieyinqingshixitongmorenyinqing

  shouceshangshizhemejiangdeSome conversion of data types might occur. For example, the AUTO_INCREMENT attribute is not preserved, and VARCHAR columns can become CHAR columns.

  dierzhongjiuwanquanfuzhiyuanbiao

  xianjianliceshibiao:

  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)

  diyizhongfangshi

  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)

  dierzhongfangshi

  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中有两种方法 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>
󰈣󰈤
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

网络安全治理:国家安全保障的主要方向是打击犯罪,而不是处置和惩罚受害者

来源:中国青年报 新的攻击方法不断涌现,黑客几乎永远占据网络攻击的上风,我们不可能通过技术手段杜绝网络攻击。国家安全保障的主要方向是打击犯罪,而不是处置和惩罚...

 
 
 
>>返回首页<<
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 
 热帖排行
 
清纯得让人窒息(7)
清纯得让人窒息(6)
天泽海韵宣传片
赣州文庙
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
©2005- 王朝网络 版权所有