2017-12-25 5 views
0

내 DB에 특정 상태가있는 일부 레코드가 있다고 가정 해 봅시다. t_status = 'T'이고 t_status = 'X'로 에 t_moddate보다 45 분 이상 오래된 것을 각각 업데이트하려고합니다.MariaDB에서 테이블에 액세스 할 때 업데이트 스크립트를 실행하는 함수/프로 시저를 어떻게 만듭니 까?

어떻게 이것을 Maria DB의 저장 프로 시저에 넣을 수 있습니까?

UPDATE TEST SET t_status = 'X' where t_status = 'T' and t_moddate <= now()- interval(45 minutes);

CREATE PROCEDURE myProc() 
    BEGIN 

     UPDATE TEST 
      SET t_status = REPLACE (first_name, 'T', 'X') 
     WHERE t_status = 'T' and t_moddate <= now()- interval 45 minute; 

    END$$ 
: 내 업데이 트를 생각

은 다음과 같다 t_id, t_status, t_moddate, t_usr_update :

테이블 이름 : 테스트 열

내 아래 표처럼 보이는

그러나 이것을 어떻게 저장 프로 시저로 가져와 기본적으로 실행하게합니까?

답변

1

시간당 또는 임의의 간격으로 실행되는 EVENT을 사용할 수 있습니다. 첫째는

SET GLOBAL event_scheduler = ON; 

그런 다음

CREATE EVENT somename 
    ON SCHEDULE EVERY '1' HOUR 
    STARTS '2017-25-12 00:00:00'  
DO 
UPDATE TEST 
     SET t_status = REPLACE (first_name, 'T', 'X') 
    WHERE t_status = 'T' AND t_moddate <= now()- interval(45 minutes); 
+1

적절한 이벤트 그런 식으로 작품을 쓸 수 있습니다. 고마워, 나는'STARTS' 속성을 없애고 인터벌을'interval 45 minute '로 바꾸는 것이 좋았다. 감사 – Cyber

관련 문제