1. 程式人生 > >mysql複製表和表資料

mysql複製表和表資料

如果我們需要完全的複製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

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
步驟二:
複製建表語句,更改表名稱,執行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;