0
다음은 예제 테이블입니다.PostgreSQL에서 단일 속성을 업데이트하기 위해 트리거를 수정하는 방법
CREATE TABLE employee_test(
idTst SERIAL PRIMARY KEY,
monthDownload VARCHAR(6),
changeDate DATE);
monthDownload 특성이 업데이트 될 때 현재 날짜로 changeDate 특성을 업데이트하는 함수 및 트리거를 만들려고합니다. 내가 가지고있는 기능은 하나의 문제와 함께 작동합니다. 업데이트 된 레코드 대신 모든 레코드를 업데이트합니다.
CREATE OR REPLACE FUNCTION downloadMonthChange()
RETURNS TRIGGER AS
$$
BEGIN
IF NEW.monthDownload <> OLD.monthDownload THEN
UPDATE employee_test
SET changeDate = current_date
where OLD.idTst = NEW.idTst;
END IF;
RETURN NEW;
END;
$$
Language plpgsql;
는 트리거
Create TRIGGER dataTest
AFTER UPDATE
ON employee_test
FOR EACH ROW
EXECUTE PROCEDURE downloadMonthChange();
나는 다음 업데이트 문을 실행
:UPDATE employee_test SET monthDownload = 'oct12'
WHERE idTst = 1;
모든 CHANGEDATE 행은 현재 날짜와 업데이 트를 얻을. 변경된 레코드가있는 행만 사용하여 현재 날짜를 업데이트하는 방법이 있습니까? 당신이
before
트리거를 사용하는 경우가after
트리거를 사용해야하는 경우