2011-01-16 5 views
1

12,000 개의 항목이있는 mysql 데이터베이스가 있습니다. 설치 프로그램에서 데이터베이스의 열을 모니터링 할 수있는 기능이 있습니다. 열이 항목에 대해 변경된 경우 세부 정보가 포함 된 전자 메일을 보냅니다. .PHP를 사용하여 MySQL 데이터베이스 모니터링

EDIT : 나는 그것과 함께 작동하는 스크립트가 아니라 mysql db에 접근 할 수있다. 이

답변

0

this에 비슷한 시도 ... 변화를 모니터링해야 datetimestamp가된다.

이 값은 행이 변경 될 때마다 업데이트됩니다. 여기서 cron 작업을 통해 또는 몇 가지 PHP 쿼리가 끝나면 마지막 쿼리 이후에 변경된 행 목록을 반환하는 SQL 쿼리를 실행할 수 있습니다.

Select * from tbl_myentries where EntryUpdated > '$TimeSinceLastCheck' 
0

가 하나 개의 컬럼을 설정에 따라서는 쿼리가 insert 및 TABLE_NAME 또는 COLUMN_NAME이있는 경우 당신은 이메일을 보낼 수있는 기능을 편집 할 수

4

사용중인 MySQL 버전에 트리거가 있으면 테이블에 트리거를 만들 수 있습니다. 그런 다음 트리거는 작성하려는 모든 기능을 호출 할 수 있습니다. 트리거는 열의 삽입이나 삭제 또는 업데이트로 인해 트리거가 발생한다는 이점이 있습니다. 다른 코드를 변경하지 않아도됩니다. 트리거가 업데이트 된 행의 정보를 삽입 할 경우 이전 값, 새로운 값이 될 수 있습니다 ((cron_table를 호출 할 수 있습니다)

+0

+1 트리거를 언급합니다. 트리거는 이러한 이벤트를 모니터하기 위해 규정 된 방법입니다. –

+0

방아쇠에서 이메일을 보내는 방법을 알고 있습니까? –

+0

@Sarwar, 아니요, 아닙니다. 나는 코드의 어떤 부분으로부터 이메일을 보내는 법을 실제로 모른다. 그러나 트리거는 저장 프로 시저를 호출 할 수 있으므로 저장 프로 시저에서 수행 할 수있는 모든 작업을 트리거에서 수행 할 수 있습니다. 죄송합니다 더 도움이 될 수 없습니다. –

2
  • http://dev.mysql.com/doc/refman/5.0/en/triggers.html 다른 테이블을 작성 갱신
  • 에 트리거를 만들기 ... 더 여기를 참조하십시오 etc)
  • cron_table을 점검하고 항목이 있는지 이메일을 보내는 스크립트를 호출하는 cron을 설정하십시오. 필요에 따라 Cron 간격을 설정할 수 있습니다.

--- 당신이 트리거에서 이메일을 보낼 수 있다면, 당신은 내 SQL에 을 트리거 (DML)을 데이터 조작 언어를 이해할 필요가없는 별도의 테이블과 크론의 필요성 ---

0

없을 것 : 사용

CREATE TRIGGER salary_trigger 
    BEFORE UPDATE ON table_name 
    REFERENCING NEW ROW AS n, OLD ROW AS o 
    FOR EACH ROW 
    IF n.columnName <> o.columnname THEN 

    END IF; 
; 
+2

이메일은 어떻게 전송됩니까? –

0

열의 변경 사항에 대한 트리거를 만든 다음 로그 테이블로 다른 테이블에 삽입하십시오.

전자 메일을 보낼 테이블에서 cron 작업을 실행하십시오.

관련 문제