はい、MySQLではトリガーがこれを行う唯一の方法です。 MySQLは制約をサポートしていません。
あなたの引き金は正確には正しくありません。まず、
日付の更新
があります 、ただし、これは update on
である必要があります 。次に、更新に使用される日付値を確認しています。 。おそらくあなたが意味するのは:
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;
挿入コード> この条件でトリガーしても意味がありません。