У меня есть этот стол, который называется «Учитель и школа».Я хотел бы создать триггер на столе учителя, чтобы проверить и запретить любую вставку или обновление человека в таблице учителя, чтобы он был учителем в нескольких школах.Схемы таблиц:
CREATE TABLE School (
ID char(3) primary key,
Name text not null,
Address text default null,
);
CREATE TABLE Teacher (
ID char(3) references School(ID),
Teacher_ID char(5)
Name text,
primary key (ID, Teacher_ID)
);
Я новичок в триггере и хотел бы лучше понять эту проблему.Означает ли это, что мне нужно создать два триггера: один для INSERT и другой для UPDATE?Нужно ли мне создавать ВИД для подсчета, если человек уже является учителем в школе?Это то, что я получил до сих пор, все еще пустой, грязный и неправильный, но был бы очень признателен, если бы кто-то мог помочь мне объяснить детали по частям.
create or replace function
insertPerson() returns trigger
as $$
declare
t Teacher;
begin
select * into t from Teacher where ID = new.Teacher_ID;
update Teacher
return new;
end;
$$ language plpgsql;
CREATE TRIGGER before_teacher_update
BEFORE UPDATE ON teacher
FOR EACH ROW execute procedure insertPerson();