您好,登錄后才能下訂單哦!
有時候我們需要原封不動的復制一張表的表結構來生成一張新表,MYSQL提供了兩種便捷的方法。
例:
CREATE TABLE tb_base( id INT NOT NULL PRIMARY KEY, name VARCHAR(10), KEY ix_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 { LIKE old_tbl_name | (LIKE old_tbl_name) }
1.復制表
CREATE TABLE IF NOT EXISTS tb_base_like (LIKE tb_base);
2.查看表
可以看到新復制的表和原表完全一致。
二、SELECT方法
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name SELECT ... (Some valid select or union statement)
1.復制表
CREATE TABLE IF NOT EXISTS tb_base_select SELECT * FROM tb_base;
2.查看表
like的方法值復制字段屬性,其它的主鍵、索引、表備注、存儲引擎都沒有復制
三、區別
like方法:like方法其實是專門復制表結構的方法,但是它只復制表的結構和相關屬性并不復制數據
select方法:嚴格來講select方法不能理解成復制表結構的方法,其實它只是執行了一個select查詢語句,所以復制的結果只包含了select的字段和數據,其它表屬性都有系統的配置文件決定;包括存儲引擎、默認字符集等都是有系統的默認配置所決定。
所以真正的表結構復制方法是LIKE方法,如果不需要考慮表原本的屬性包括存儲引擎、備注、主鍵、索引等那么select復制方法是個不錯的方法并且還能連同數據一起復制。
有時候我們需要原封不動的復制一張表的表結構來生成一張新表,MYSQL提供了兩種便捷的方法。
例:
CREATE TABLE tb_base( id INT NOT NULL PRIMARY KEY, name VARCHAR(10),KEY ix_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 { LIKE old_tbl_name | (LIKE old_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.查看表
like的方法值復制字段屬性,其它的主鍵、索引、表備注、存儲引擎都沒有復制
三、區別
like方法:like方法其實是專門復制表結構的方法,但是它只復制表的結構和相關屬性并不復制數據
select方法:嚴格來講select方法不能理解成復制表結構的方法,其實它只是執行了一個select查詢語句,所以復制的結果只包含了select的字段和數據,其它表屬性都有系統的配置文件決定;包括存儲引擎、默認字符集等都是有系統的默認配置所決定。
所以真正的表結構復制方法是LIKE方法,如果不需要考慮表原本的屬性包括存儲引擎、備注、主鍵、索引等那么select復制方法是個不錯的方法并且還能連同數據一起復制。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。