我试图在插入绘画后将其插入In_Gallery
表或On_Loan
表中,但不能同时插入其中。当我尝试制作触发函数时,我不断收到错误消息:
ERROR: stack depth limit exceeded HINT: Increase the configuration parameter "max_stack_depth" (currently 2048kB),after ensuring the platform's stack depth limit is adequate.
我不确定这是怎么回事:
CREATE OR REPLACE FUNCTION checkOnLoan()
RETURNS trigger AS
$$
DeclARE
countGal numeric;
BEGIN
SELECT COUNT(*) INTO countGal FROM IN_GALLERY WHERE P_id = new.P_id;
IF countGal = 0 THEN
INSERT INTO ON_LOAN VALUES (new.Certid,new.P_id,new.Insurer);
ELSE
RAISE EXCEPTION 'ALREADY IN GALLERY';
END IF;
RETURN new;
END;
$$
LANGUAGE 'plpgsql';
CREATE TRIGGER OnLoan
AFTER INSERT ON ON_LOAN
FOR EACH ROW
EXECUTE PROCEDURE checkOnLoan();