mysql複製表和表資料
阿新 • • 發佈:2019-01-09
如果我們需要完全的複製MySQL的資料表,包括表的結構,索引,預設值等。 如果僅僅使用CREATE TABLE … SELECT 命令,是無法實現的。
本章節將為大家介紹如何完整的複製MySQL資料表,步驟如下:
使用 SHOW CREATE TABLE 命令獲取建立資料表(CREATE TABLE) 語句,該語句包含了原資料表的結構,索引等。
複製以下命令顯示的SQL語句,修改資料表名,並執行SQL語句,通過以上命令 將完全的複製資料表結構。
如果你想複製表的內容,你就可以使用 INSERT INTO … SELECT 語句來實現。
步驟一:
獲取資料表的完整結構。
–show create table ‘表名稱’;
–結果如下:
CREATE TABLE offset
(
offset_id
bigint(20) NOT NULL AUTO_INCREMENT,
create_time
datetime NOT NULL,
update_time
datetime NOT NULL,
version
bigint(20) DEFAULT NULL,
batch_code
varchar(255) DEFAULT NULL,
cargo_code
varchar(255) DEFAULT NULL,
expiration_time
datetime DEFAULT NULL,
in_out_storage
inventory_total_amount
int(11) DEFAULT NULL,offset_amount
int(11) DEFAULT NULL,raw_material_code
varchar(255) DEFAULT NULL,source_code
varchar(255) DEFAULT NULL,station_code
varchar(255) DEFAULT NULL,storage_code
varchar(255) DEFAULT NULL,surplus_amount
int(11) DEFAULT NULL,total_offset_amount
unit_cost
decimal(19,2) DEFAULT NULL,PRIMARY KEY (
offset_id
)) ENGINE=InnoDB DEFAULT CHARSET=utf8
步驟二:
複製建表語句,更改表名稱,執行sql語句。
mysql> CREATE TABLE
offset_clone
(offset_id
bigint(20) NOT NULL AUTO_INCREMENT,create_time
datetime NOT NULL,update_time
datetime NOT NULL,version
bigint(20) DEFAULT NULL,batch_code
varchar(255) DEFAULT NULL,cargo_code
varchar(255) DEFAULT NULL,expiration_time
datetime DEFAULT NULL,in_out_storage
int(11) DEFAULT NULL,inventory_total_amount
int(11) DEFAULT NULL,offset_amount
int(11) DEFAULT NULL,raw_material_code
varchar(255) DEFAULT NULL,source_code
varchar(255) DEFAULT NULL,station_code
varchar(255) DEFAULT NULL,storage_code
varchar(255) DEFAULT NULL,surplus_amount
int(11) DEFAULT NULL,total_offset_amount
int(11) DEFAULT NULL,unit_cost
decimal(19,2) DEFAULT NULL,PRIMARY KEY (
offset_id
)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
步驟三:拷貝資料
INSERT INTO clone_tbl (runoob_id,
-> runoob_title,
-> runoob_author,
-> submission_date)
-> SELECT runoob_id,runoob_title,
-> runoob_author,submission_date
-> FROM runoob_tbl;