我试图为我的数据库编写一个触发器过程。
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”
我该如何修正扳机?
您需要选择适当的studente,如果studente.anno_iscrizione是日期数据类型,那么YEAR函数就可以了。 我在两个表中都使用了学生id列的名称
if new.anno - (select YEAR(Studente.anno_iscrizione) from studente where studente.student_id = new.student_id) <2