提问者:小点点

字段列表中的表未知?


我试图为我的数据库编写一个触发器过程。

    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中,我有一个int,叫做anno,它代表一年。 在Studente中,我有一个叫做Anno_iscrizione的约会。 我想做的是一个触发器,如果anno和anno_iscrizione的年份之间的差异小于2,则不允许在Gioca中插入。 但是当我在表Gioca中插入一些内容时,它会给我错误“unknown table'studente'in field list”

我该如何修正扳机?


共1个答案

匿名用户

您需要选择适当的studente,如果studente.anno_iscrizione是日期数据类型,那么YEAR函数就可以了。 我在两个表中都使用了学生id列的名称

if new.anno - (select YEAR(Studente.anno_iscrizione) from studente where studente.student_id = new.student_id) <2