2011-08-04 6 views
3

사실 나는이 페이지에 또 다른 질문에 읽은 다음 문장을 사용mysql 테이블이 업데이트되었는지 어떻게 알 수 있습니까?

SELECT UPDATE_TIME 
FROM information_schema.tables 
WHERE TABLE_SCHEMA = 'dbname' 
    AND TABLE_NAME = 'tabname' 

하지만 MySQL의 서버 나에게 신호 할 때를 보내는 경우는 처리 시간을 많이 사용하고, 더 쉽게 될 것이라고 생각 내 프로그램이 신호를 감지 할 때까지 기다릴 수 있도록 테이블이 업데이트됩니다.

이것이 가능합니까? 나는 C로 프로그래밍 중입니다.

고맙습니다.

+1

신호와 함께 할 일이 많이 있습니다. 그래서 태그를 다시 붙이겠다. 태그를 위해 태그를 추가하지 마라. –

답변

4

C (++)에서 프로 그래밍 된 UDF와 결합 된 트리거를 사용하여 알림을 수행 할 수 있습니다.
여기에 더미 코드가 있습니다.

DELIMITER $$ 

CREATE TRIGGER ai_table1_each AFTER INSERT ON table1 FOR EACH ROW 
BEGIN 
    CALL ChangeNotification('table1', 'insert', NEW.id); 
END $$ 

DELIMITER ; 

삽입/삭제 및 업데이트를 위해 트리거를 수행해야합니다. 테이블 당 3x.
시스템 테이블 IIRC에는 실제 테이블이 아니고 실제 테이블이기 때문에 트리거를 추가 할 수 없습니다.

알림을 제공하는 changenotification이라는 C (++)로 UDF를 작성해야합니다.

링크 :
http://dev.mysql.com/doc/refman/5.0/en/adding-udf.html
http://www.mysqludf.org/
http://dev.mysql.com/doc/refman/5.0/en/triggers.html
http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

+0

이 말은 흥미로운 것 같아요. 트릭을 만드는 것 같아요, 정말 고마워요. 시스템 테이블 (보기)이 아니라 테이블에 트리거를 사용 하겠지만 조언을 주셔서 감사합니다. –

관련 문제