日付列の既存の日付が上書きされないように保護したいと考えています。そのため、日付列への更新を許可せず、既存のフィールド値が NULL の場合にのみ挿入を許可します (日付列のデフォルトは NULL)。トリガーは MySQL でこれを達成する唯一の方法ですか? もしそうなら、以下のトリガーは機能しますか?
create trigger date_check
before insert, update on date
for each row
begin
if(date IS NOT NULL) then
SIGNAL 'date already set'
end if ;
end ;
背景: ユーザー エラーが原因で誤って変更された重要な日付を含むテーブルがあります。これが再び発生するのを防ぐために、ユーザー インターフェイスにいくつかのチェックを入れましたが、可能であれば、データベースと直接やり取りする別の安全層が必要です。