Мне трудно понять, почему при выполнении триггера с функцией внутреннего соединения cmd вызывает ошибку: psql: createTrigger.sql: 46: ОШИБКА: currentStudentNumber не является известной переменной LINE 8:ВЫБЕРИТЕ COUNT (Student_subject.StudentID) INTO currentStudentNumber
--rule, that lecturer can not have more than 7 students
CREATE FUNCTION lecturersStudentNumber() RETURNS "trigger" AS $$
DECLARE
maxStudenNumber CONSTANT SMALLINT :=7;
currentStudentNumber SMALLINT;
BEGIN
SELECT COUNT(Student_Subject.StudentID) INTO currentStudentNumber
FROM rora3887.Subject_Lecturer
INNER JOIN rora3887.Lecturer ON Subject_Lecturer.LecturerID=Lecturer.LecturerID
INNER JOIN rora3887.Subject ON Subject_Lecturer.SubjectID=Subject.SubjectID
INNER JOIN rora3887.Student_Subject ON Subject.SubjectID=Student_Subject.SubjectID
GROUP BY Lecturer.LecturerID;
IF MAX(currentStudentNumber) + 1 > maxStudentNumber
THEN RAISE EXCEPTION 'Lecturer can not have more than 7 students';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER lecturersMaxStudentNumber
BEFORE INSERT OR UPDATE ON rora3887.Subject_Lecturer
FOR EACH ROW EXECUTE PROCEDURE lecturersStudentNumber();
У меня есть файл createTrigger.sql с таким кодом. Моя схема подключения к базе данных