从表列表中将数据插入一个表(SELECT FROM INFORMATION_SCHEMA.TABLES)

时间:2017-07-18 17:25:49

标签: mysql dynamic-sql information-schema

需要你的帮助。

我需要进行以下插入:

`INSERT INTO results_archive(`id_original`,`client_name`,`keywords`,`search_type`) 
SELECT `id`,`client_name`,`keywords`,`search_type` 
FROM {here I need to loop list of tables obtained from ***another SELECT***} 
WHERE timestamp < DATE_SUB(curdate(), INTERVAL 10 DAY)`

这是 另一个SELECT

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='repute' AND TABLE_NAME LIKE 'results_%'

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您无法在单个SQL查询中使表列表动态化。必须在准备查询时修复表名,列名和其他语法。

您必须编写一些其他应用程序代码来获取表列表,然后构造一个或多个动态SQL查询以使用这些表名。

你必须分两步这样做。