我創建了一個People表,其中包含People表的所有信息,如姓名,姓氏,性別,出生日期和電子郵件。此表中的每一行都有一個序列peopleID。我正在嘗試創建存儲過程並觸發自動計算剛剛輸入的人的年齡。我正在嘗試使用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
肯定的事情。我拿起文檔供你閱讀 - 看看我的回答 –