Tak, w MySQL wyzwalacze to jedyny sposób, aby to zrobić. MySQL nie obsługuje ograniczeń.
Twój spust nie jest do końca właściwy. Najpierw masz update on date
, ale powinna to być aktualizacja update on <table name>
. Po drugie, sprawdzasz wartość daty użytą do aktualizacji . Być może masz na myśli:
create trigger date_check_update
before update on <the table name goes here>
for each row
begin
if (old.date IS NOT NULL) then
SIGNAL 'date already set'
end if ;
end;
insert
wyzwalacz w tym warunku nie ma sensu.