介紹
有時候我們需要原封不動的複製一張表的表結構來生成一張新錶,mysql提供了兩種便捷的方法。
例:create tabletb_base(
idint not null primary key,
namevarchar(10),keyix_name (name))
engine='myisam',charset=utf8,comment 'a' ;
insert into tb_base() values(1,'a'),(2,'b');
一、like方法
like方法能一模一樣的將乙個表的結果複製生成乙個新錶,包括複製表的備註、索引、主鍵外來鍵、儲存引擎等。
create [temporary] table [if not exists]tbl_name
1.複製表
create table if not exists tb_base_like (like tb_base);
2.檢視表
可以看到新複製的表和原表完全一致,但是不複製資料。
二、select方法
create [temporary] table [if not exists]tbl_nameselect ... (some valid select or union statement)
1.複製表
create table if not exists tb_base_select select * from tb_base;
2.檢視表
select的方法值複製字段屬性,其它的主鍵、索引、表備註、儲存引擎都沒有複製
三、區別
like方法:like方法其實是專門複製表結構的方法,但是它只複製表的結構和相關屬性並不複製資料
select方法:嚴格來講select方法不能理解成複製表結構的方法,其實它只是執行了乙個select查詢語句,所以複製的結果只包含了select的字段和資料,其它表屬性都有系統的配置檔案決定;包括儲存引擎、預設字符集等都是有系統的預設配置所決定。
總結所以真正的表結構複製方法是like方法,如果不需要考慮表原本的屬性包括儲存引擎、備註、主鍵、索引等那麼select複製方法是個不錯的方法並且還能連同資料一起複製。
備註:《歡迎交流討論》
mysql 位元組複製 MySQL 複製表
mysql 複製表 如果我們需要完全的複製mysql的資料表,包括表的結構,索引,預設值等。如果僅僅使用 create table select 命令,是無法實現的。使用 show create table 命令獲取建立資料表 create table 語句,該語句包含了原資料表的結構,索引等。複製...
MySQL 複製表結構 資料
like方法複製生成乙個新錶,包括其備註 索引 主鍵外來鍵 儲存引擎等 create table ifnot exists like table2 like table2 select方法只複製字段屬性,原表的主鍵 索引 表備註 儲存引擎都沒有複製 create table ifnot exists...
複製表結構 MySQL如何複製表
如果我們需要完全的複製mysql的資料表,包括表的結構,索引,預設值等。如果僅僅使用create table select命令,是無法實現的。例項嘗試以下例項來複製表 w3cschool tbl 步驟一 獲取資料表的完整結構。mysql show create table w3cschool tbl...