gpt4 book ai didi

mysql - SQL MariaDB - 对每个数据库中的每个表循环此查询,但有异常(exception)

转载 作者:行者123 更新时间:2023-11-29 16:36:56 26 4
gpt4 key购买 nike

我有一个大型数据库,我使用下面的查询每月对其进行修剪。但是,我有数百个表,并且希望将其放入数据库中每个表的 foreach 循环中。

我知道如何在 PHP 中实现此循环,但如果能在纯 SQL 中直接作为数据库查询运行,那就太好了。

noprune 为前缀的表(例如 noprune_master_tableZ)需要排除在循环之外。

我从哪里开始?谢谢

START TRANSACTION;
set @N := (now());
CREATE TABLE master_tableA_snapshot AS SELECT * FROM master_tableA where insertDATE < date_sub(@N,INTERVAL 32 DAY);
SELECT * from master_tableA_snapshot INTO OUTFILE '/tmp/master_tableA_snapshot_TODAYSDATE.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
DELETE from master_tableA where insertDATE < date_sub(@N,INTERVAL 32 DAY);
DROP TABLE master_tableA_snapshot;
COMMIT;

最佳答案

您实际上只有两个带有辅助变量的语句,简化为:

set @N := date_sub(NOW(),INTERVAL 32 DAY);

SELECT *
FROM master_tableA
WHERE insertDATE < @N
INTO OUTFILE '/tmp/master_tableA_snapshot_TODAYSDATE.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

DELETE from master_tableA where insertDATE < @N;

PHP 通过查询选择表名:

SELECT TABLE_NAME
FROM information_schema.TABLES
WHERE SCHEMA='mydatabase'
AND TABLE_NAME NOT LIKE 'noprune%';

关于mysql - SQL MariaDB - 对每个数据库中的每个表循环此查询,但有异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550756/

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