【发布时间】:2020-06-19 12:09:09
【问题描述】:
我试图为我的数据库编写一个触发过程。
DELIMITER //
CREATE TRIGGER studenteGioca BEFORE INSERT ON Gioca
FOR EACH ROW
BEGIN
if(new.anno - EXTRACT(YEAR FROM Studente.anno_iscrizione)<2)
then SIGNAL SQLSTATE '71261'
SET MESSAGE_TEXT='Lo studente non puo giocare nella squadra al primo anno di scuola';
end if;
END;
//
DELIMITER ;
涉及的桌子是 Gioca 和 Studente。在 gioca 中,我有一个名为 anno 的 int,它代表一年。在 Studente,我有一个名为 anno_iscrizione 的约会。 如果 anno 和 anno_iscrizione 的年份之间的差异小于两个,我想要做的是一个不允许在 Gioca 中插入的触发器。 但是当我在 Gioca 表中插入一些东西时,它给了我错误“字段列表中的未知表 'Studente'”
我应该如何纠正触发器?
【问题讨论】:
-
没有 SELECT 就不能有 FROM,你需要一个 FROM
。我怀疑您还需要测试学生是否匹配。 -
请添加您的表定义。