求解MySQL复制动态表

参数为表名(要创建的表),已有表名(已有表);

功能是创建一个和已有表结构相同并且数据一样的新表。

思路:

拼接create tablename as ddl语句创建表的sql语句;

使用execute immediate执行sql语句;

代码如下

delimiter &&
create procedure copy_demo()
begin
    CREATE TABLE demo(
        `id` INT UNSIGNED AUTO_INCREMENT,
        `title` VARCHAR(100) NOT NULL
    );


    execute immediate select count(1) from emp
    into demo2;
end &&
delimiter ;
call copy_demo();

我上面创建了一个demo表,我需要新创建一个demo2表并且将demo的结构与内容复制到demo2表

create table newTableName as select * from oldTableName