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>

 
mysql下創建數據庫的兩種方式
1、命令創建首先以root用戶登錄sql>create database databasename;2、如何你想在沒登錄mysql情況下創建mysql數據庫,那在mysql的data目錄下創建一個userbase目錄即可。在連上mysql後,show databases;就可以看見你...查看完整版>>mysql下創建數據庫的兩種方式
 
[GDI+] 創建Images的兩種方式
使用Bitmap構造完成一個新的image對象,大小爲xsize,ysize[C#]Bitmap myImage = new Bitmap(<xsize>,<ysize>);Dim MyImage = new Bitmap(<xsize>,<ysize>)下面這個方法創建一個默認顔色深度...查看完整版>>[GDI+] 創建Images的兩種方式
 
[GDI+] 創建Images的兩種方式
使用Bitmap構造完成一個新的image對象,大小爲xsize,ysize[C#]Bitmap myImage = new Bitmap(<xsize>,<ysize>);Dim MyImage = new Bitmap(<xsize>,<ysize>)下面這個方法創建一個默認顔色深度...查看完整版>>[GDI+] 創建Images的兩種方式
 
教你快速掌握MySQL數據庫的雙向加密方式
假如你正在運行使用MySQL的Web應用程序,那麽你把密碼或者其他敏感信息保存在應用程序裏的機會就很大。保護這些數據免受黑客或者窺探者的獲取是一個令人關注的重要問題,因爲您既不能讓未經授權的人員使用或者破壞應...查看完整版>>教你快速掌握MySQL數據庫的雙向加密方式
 
Apache兩種虛擬主機方式的區別
  大多數人可能就知道 Apache 的基于名字的虛擬主機,不知道 Apache 還可以有基于 IP 的虛擬主機。前者的道理不言自明,多個域名(服務器)對應一個 IP 地址,配置方法爲:     NameVirtualHost 111.22.33.44 ...查看完整版>>Apache兩種虛擬主機方式的區別