該語法**不複製索引、外鍵、觸發器、預設值、AUTO_INCREMENT 等屬性**,僅複製列定義與數據。
SHOW CREATE TABLE tutorials_tbl\G
輸出包含:列定義、主鍵、唯一索引、引擎、字符集、AUTO_INCREMENT 當前值等。
CREATE TABLE `clone_tbl` ( `tutorial_id` int(11) NOT NULL auto_increment, `tutorial_title` varchar(100) NOT NULL default '', `tutorial_author` varchar(40) NOT NULL default '', `submission_date` date default NULL, PRIMARY KEY (`tutorial_id`), UNIQUE KEY `AUTHOR_INDEX` (`tutorial_author`) ) ENGINE=InnoDB;
INSERT INTO clone_tbl (tutorial_id, tutorial_title, tutorial_author, submission_date) SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl;
DELIMITER //
CREATE PROCEDURE clone_table(IN src_db VARCHAR(64), IN src_tbl VARCHAR(64),
IN dst_db VARCHAR(64), IN dst_tbl VARCHAR(64),
IN copy_data BOOLEAN)
BEGIN
DECLARE ddl TEXT;
SELECT REPLACE(REPLACE(TRIM(TRAILING ';' FROM `Create Table`), CONCAT('`', src_tbl, '`'), CONCAT('`', dst_tbl, '`')),
CONCAT(src_db, '.'), CONCAT(dst_db, '.'))
INTO ddl FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = src_db AND TABLE_NAME = src_tbl;
SET @sql = ddl; PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
IF copy_data THEN
SET @sql = CONCAT('INSERT INTO `', dst_db, '`.`', dst_tbl, '` SELECT * FROM `', src_db, '`.`', src_tbl, '`');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
END IF;
END//
DELIMITER ;
SHOW CREATE VIEW