我在MySQL
中有一个存储过程,它调用一个将值插入表中的函数。
insert语句类似于
INSERT INTO Table1 SELECT * from Table2
Table2
具有变量名称,具体取决于调用过程的日期
table_201410
,如果该程序是在2014年10月调用的。每个月,该程序应该从另一个表中进行选择。
我已经阅读了一些有关准备和执行的答案,但我是MySQL/Programming
的新手。我有点失落。
答案 0 :(得分:2)
您可以使用这样的预备语句:
DELIMITER $$
DROP PROCEDURE copy_table $$
CREATE PROCEDURE copy_table ()
BEGIN
set @table_name = date_format(now(),'%Y%m'); -- getting year and month
-- concatenating
set @sql = concat('INSERT INTO Table1 SELECT * from table_',@table_name);
-- creating a prepared statement and executing
PREPARE insert_stmt FROM @sql;
EXECUTE insert_stmt;
DEALLOCATE PREPARE insert_stmt;
END$$
DELIMITER ;