Неизвестная таблица из списка полей? - PullRequest
0 голосов
/ 19 июня 2020

Я попытался написать процедуру триггера для своей базы данных.

    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 , который представляет год. в Студенте у меня есть свидание под названием anno_iscrizione . Я хочу сделать триггер, который не разрешает вставку в Gioca, если разница между anno и годом anno_iscrizione меньше двух. Но когда я что-то вставляю в таблицу Gioca, появляется ошибка «Неизвестная таблица 'Studente' в списке полей»

Как мне исправить триггер?

1 Ответ

0 голосов
/ 19 июня 2020

Вам нужно выбрать соответствующий студенческий код, и если Studente.anno_iscrizione является типом данных даты, тогда функция YEAR подойдет. Я предположил имя столбца идентификатора студента в обеих таблицах

if new.anno - (select YEAR(Studente.anno_iscrizione) from studente where studente.student_id = new.student_id) <2 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...