0
트리거 기능이 있습니다. Postgres에서 실행하려고합니다.트리거가 아직 실행되지 않음 생성되었습니다.
트리거를 컴파일하고 추가하지만 원하는대로 값을 테이블에 삽입하지 않습니다.
CREATE OR REPLACE FUNCTION
calc_gnpDifference(n integer, o integer)
RETURNS NUMERIC AS $$
SELECT $1 ::numeric - $2::numeric AS gnpDifference;
$$ LANGUAGE SQL;
그리고 트리거 부분 : 내가 데이터를 삽입 할 때
CREATE OR REPLACE FUNCTION autoCalculate() RETURNS TRIGGER AS $$
BEGIN
IF NEW.gnp_old > NEW.gnp_old THEN
NEW.gnpDifference := calc_gnpDifference(NEW.gnp_old, NEW.gnp);
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
DROP TRIGGER insertDifference ON country;
CREATE TRIGGER insertDifference BEFORE INSERT ON country
FOR EACH ROW EXECUTE PROCEDURE autoCalculate();
는 그러나 gnpDifference 필드를 업데이트하지 않습니다 트리거는 내가 기대했던대로
가 사용하는 기능은 다음과 같습니다 . 이것이 왜 일어날 지에 대한 생각?