我想为MySQL 5.7创建一个SQL脚本,该脚本将数据库原始表中的数据插入另一个目标数据库的表中。
我想通过变量定义此源数据库。
USE my_target_db;
SET @origin_db='my_origin_db';
SET @origin_table = concat(@origin_db,'.','tablename');
INSERT INTO target_table SELECT * FROM @origin_table;
在各种示例中都使用变量来定义列名,但我从未见过用它定义表的方法。
有人为此欺骗吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以像这样使用Prepared Statement:
USE my_target_db;
SET @origin_db='my_origin_db';
SET @origin_table = concat(@origin_db,'.','tablename');
SET @qry1 = concat('INSERT INTO target_table SELECT * FROM ', @origin_table);
PREPARE stmt1 from @qry1;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;