熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

MySQL中兩種快速創建空表的方式的區別

2013-11-23 21:06:58  來源: MySQL 

  在MySQL中有兩種方法

  create table t_name select
  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 row affected ( sec)
  mysql> use dbtest;
  Database changed
  mysql> create table t_old
  > (
  > id serial
  > content varchar() not null
  > `desc` varchar() not null)
  > engine innodb;
  Query OK rows affected ( sec)
  mysql> show create table t_old;
  +++
  | Table | Create Table |
  +++
  | t_old | CREATE TABLE `t_old` (
  `id` bigint() unsigned NOT NULL auto_increment
  `content` varchar() NOT NULL
  `desc` varchar() NOT NULL
  UNIQUE KEY `id` (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=latin |
  +++
   row in set ( sec)

  第一種方式

  mysql> create table t_select select * from t_old where = ;
  Query OK rows affected ( sec)
  Records: Duplicates: Warnings:
  mysql> show create table t_select;
  +++
  | Table | Create Table +++
  | t_select | CREATE TABLE `t_select` (
  `id` bigint() unsigned NOT NULL default
  `content` varchar() NOT NULL
  `desc` varchar() NOT NULL
  ) ENGINE=MyISAM DEFAULT CHARSET=latin |
  +++
   row in set ( sec)

  第二種方式

  mysql> create table t_like like t_old;
  Query OK rows affected ( sec)
  mysql> show create table t_like;
  +++
  | Table | Create Table |
  +++
  | t_like | CREATE TABLE `t_like` (
  `id` bigint() unsigned NOT NULL auto_increment
  `content` varchar() NOT NULL
  `desc` varchar() NOT NULL
  UNIQUE KEY `id` (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=latin |
  +++
   row in set ( sec)
  mysql>


From:http://tw.wingwit.com/Article/program/MySQL/201311/29611.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.