· 8 years ago · Jan 08, 2018, 04:14 AM
1DELIMITER |
2CREATE PROCEDURE P_DYN_TABLE(IN new_table_name VARCHAR(500), IN source_table_name VARCHAR(500))
3BEGIN
4
5 SET @tableName = new_table_name;
6 SET @sourceTable = source_table_name;
7
8 SET @createTable = CONCAT('CREATE TABLE IF NOT EXISTS ', @tableName, ' LIKE ', @sourceTable);
9 SET @populateTable = CONCAT('INSERT INTO ', @tableName, ' SELECT * FROM ', @sourceTable);
10
11 PREPARE createStmt FROM @createTable;
12 EXECUTE createStmt;
13 DEALLOCATE PREPARE createStmt;
14
15 PREPARE insertStmt FROM @populateTable;
16 EXECUTE insertStmt;
17 DEALLOCATE PREPARE insertStmt;
18
19END
20| DELIMITER