私は人の名前、姓、性別、生年月日、電子メールなどのすべての情報を含むPeopleテーブルを使用してデータベースを作成しました。この表の各行には、一連のpersonIDがあります。私はストアドプロシージャを作成しようとしているばかりで、入力したばかりの人の年齢を自動的に計算します。私はcurrvalを使用して最後に挿入されたpeopleIDを取得しようとしています。postgreSQLでcurrvalを使って年齢を計算する
これは私のストアドプロシージャです:
CREATE OR REPLACE FUNCTION PersonAge (peopleID INT)
RETURNS INTERVAL AS
$$
DECLARE
birthday date := (SELECT People.dateOfBirth
FROM People
);
BEGIN
RETURN age(birthday);
END;
$$
LANGUAGE plpgsql
これが私のトリガーです:
CREATE TRIGGER CalculateAge
AFTER INSERT OR UPDATE ON People
FOR EACH ROW
EXECUTE PROCEDURE PersonAge(SELECT currval(‘people_id_seq’));
これは私がINSERT文でそれを実装しようとしたとき、私は取得していますエラーです:
ERROR: syntax error at or near "currval"
LINE 5: EXECUTE PROCEDURE PersonAge(SELECT currval('people_id_seq')...
^
********** Error **********
ERROR: syntax error at or near "currval"
SQL state: 42601
Character: 116
トリガ機能?... –
は、私が具体的にどのような要素私はここに必要とするように私は少し混乱していと思います。私はトリガーにはかなり新しいです。 – user5959738
確かに。私はあなたのために読んだドキュメントを拾った - 私の答えを見て –