gpt4 book ai didi

postgresql - 级联触发器不起作用

转载 作者:行者123 更新时间:2023-11-29 13:48:35 25 4
gpt4 key购买 nike

大家好。要点很简单。我有一些名为 PERSONS、STUDENTS、EMPLOYEES 的表。而 IDPERSON = idstudent,idperson = idemployee。到目前为止一切顺利。

我试图创建一个删除级联触发器,每当我删除一个人时,它都会删除表 PERSONS 中的行,并且删除取决于该人是被放入表 STUDENTS 还是 EMPLOYEES 中。

因为在 PERSONS 表中我只找到(姓名、IDPERSON、电话、电子邮件等),而在 Student/Emplyee 中我找到了更多技术细节,例如:ScheduleEmployee、IdAccomodationStudent 等。希望你明白了。

CREATE FUNCTION stergereStudenti () RETURNS trigger AS $$
BEGIN
DELETE FROM persoane WHERE idpersoana = OLD.idpersoana;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER trgStergereStudenti BEFORE DELETE ON TABLE studenti
FOR EACH ROW EXECUTE stergereStudenti();

出于某种原因,它不起作用。我查看了旧的 stackoverflow 帖子,我得到了上面的触发器并添加到我的数据库中。但是不工作..请帮助:(

最佳答案

触发器看起来像是不适合这项工作的工具。相反,您可以使用带有 on delete cascade 选项的外键:

ALTER TABLE student 
ADD CONSTRAINT student_fk
FOREIGN KEY(idpersoana)
REFERENCES person(idpersoana) ON DELETE CASCADE;

关于postgresql - 级联触发器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44472202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com