0
ここに私のサンプルテーブルがあります。PostgreSQLの単一の属性を更新するためにトリガを変更する方法
CREATE TABLE employee_test(
idTst SERIAL PRIMARY KEY,
monthDownload VARCHAR(6),
changeDate DATE);
私はmonthDownload属性が更新されたときに現在の日付とCHANGEDATE属性を更新してしまう機能やトリガーを作成しようとしています。 私はそれを持っている機能は1つの問題で動作します。更新されたレコードではなく、すべてのレコードが更新されます。
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文を実行する場合:
UPDATE employee_test SET monthDownload = 'oct12'
WHERE idTst = 1;
をすべてCHANGEDATE行は、現在の日付で更新を取得します。 変更されたレコードを持つ行だけに現在の日付を更新させる方法がありますか?