Да, в MySQL тригерите са единственият начин да направите това. MySQL не поддържа ограничения.
Вашият спусък не е точно правилен. Първо, имате update on date
, но това трябва да е update on <table name>
. Второ, вие проверявате стойността на датата, използвана за актуализация . Може би имате предвид:
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
задействането при това условие няма смисъл.