gpt4 book ai didi

使用/动态名称调用表的 MySQL 存储过程

转载 作者:行者123 更新时间:2023-11-29 07:47:26 25 4
gpt4 key购买 nike

我在 MySQL 中有一个存储过程,它调用一个将值插入表中的函数。插入语句就像

INSERT INTO Table1 SELECT * from Table2

Table2 有一个变量名称,具体取决于调用过程的日期,例如table_201410 ,如果该过程是在 2014 年 10 月调用的。因此每个月,该过程都应该从另一个表中进行选择。

我已经阅读了一些有关准备和执行的答案,但是因为我是MySQL/编程的新手。我有点迷失了。

最佳答案

您可以使用这样的准备好的语句:

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 ;

关于使用/动态名称调用表的 MySQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27362721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com