반응형
SQL MariaDB - 예외가 있는 모든 데이터베이스의 모든 테이블에 대해 이 쿼리 반복
아래 쿼리를 사용하여 매월 제거하는 대용량 데이터베이스가 있습니다.그러나 수백 개의 테이블이 있으며 데이터베이스의 각 테이블에 대해 각 루프로 만들고 싶습니다.
저는 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%';
언급URL : https://stackoverflow.com/questions/53550756/sql-mariadb-loop-this-query-for-every-table-in-every-database-with-exceptions
반응형
'programing' 카테고리의 다른 글
Python 설정 도구를 사용한 설치 후 스크립트 (0) | 2023.07.22 |
---|---|
단위 벡터가 필요한 이유(즉, 벡터를 정규화해야 하는 이유)는 무엇입니까? (0) | 2023.07.22 |
csv는 왜 글을 쓰나요?writerow는 각 문자 뒤에 쉼표를 넣습니까? (0) | 2023.07.22 |
멀티프로세싱: 프로세스 간에 큰 읽기 전용 객체를 공유하시겠습니까? (0) | 2023.07.22 |
헬그랜드(발그랜드)와 OpenMP(C): 잘못된 긍정을 피합니까? (0) | 2023.07.22 |