이 유형의 질문은 몇 번 게시되었지만 다음과 같은 경우에는 제공되는 솔루션이 이상적이지 않습니다. 첫 번째 쿼리에서이 첫 번째 쿼리가 실행될 때 내가 알고있는 테이블 이름을 선택합니다. 그런 다음 반복하면서 선택한 테이블의 레코드 수를 쿼리하려고하지만 여전히 존재하는 경우에만 쿼리를 실행합니다. 문제는 루프 중에 테이블의 일부가 다른 스크립트에 의해 삭제된다는 것입니다. 예를 들어 :mysql이 아닌 고유, 테이블이 존재하는 경우에만 선택
SELECT tablename FROM table
-- returns say 100 tables
while (%tables){
SELECT COUNT(*) FROM $table
-- by the time it gets to the umpteenth table, it's been dropped
-- so the SELECT COUNT(*) fails
}
그리고, 그것은 크론에 의해 실행 있기 때문에 내 생각, 그것은 fataly 실패하고 나는 그것이 실패라는 크론에서 이메일을 전송받을.
DBD :: mysql을 :: 일 실행에 실패했습니다 테이블 'XXX'는 /usr/local/lib/perl/5.10.1/Mysql.pm 라인에 존재하지 않는 175
스크립트는 더 이상 사용되지 않는 Mysql.pm perl 모듈을 사용하고 있습니다.
예외 처리 ??? – Khaleel
새로운 사용자 팁 : 유용하다고 판단되면 upvote/accept를 사용할 수 있습니다. 그리고 아마도 당신의 질문과 관련된 mysql 엔진 버전을 포함해야한다. –
거래를 사용해 보셨습니까? –