初めてトリガー、ケース、および存在を使用していますが、問題を把握することはできません。私はテーブル名をレスポンダの利便性のための属性に置き換えました。新しいエントリの主キーが既に一時テーブルに存在するならば、私は、Postgres構文エラー - トリガー
を私の一時的なテーブルにエントリを挿入すると、私はこの新しいエントリの開始日をしたい:私がしたいことということです基本的に
、前のレコードの終了日である。
新しいエントリがテーブルに対して完全に新しい場合、何も起こりません(挿入は通常どおり動作します)。
コードは次のとおりです。
CREATE OR REPLACE FUNCTION update_End_Date()
RETURNS trigger AS
$$
BEGIN
SELECT CASE
WHEN EXISTS (SELECT TemporalTable.primaryKey FROM TemporalTable WHERE primaryKey = NEW.primaryKey)
THEN
UPDATE
TemporalTable
SET
TemporalTable.DtEnd = NEW.DtStart
WHERE
TemporalTable.PrimaryKey = NEW.PrimaryKey AND
TemporalTable.DtEnd IS NULL
;
END
RETURN NEW;
RETURN NEW;
END;
$$
LANGUAGE 'plpgsql';
CREATE TRIGGER update_End_Date
BEFORE INSERT
ON Table1
FOR EACH ROW
EXECUTE PROCEDURE update_End_Date();
あなたは何の問題がありますか?エラーはありますか?その場合は、エラーの詳細を入力します。 – Nicarus