Mysql
 sql >> Database >  >> RDS >> Mysql

Proteggi la colonna, non consenti l'aggiornamento, consenti l'inserimento solo se NULL in MySQL

Sì, in MySQL i trigger sono l'unico modo per farlo. MySQL non supporta i vincoli.

Il tuo trigger non è esattamente giusto. Innanzitutto, hai update on date , ma dovrebbe essere update on <table name> . In secondo luogo, stai controllando il valore della data utilizzato per l'aggiornamento . Forse intendi:

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;

Un insert trigger in questa condizione non ha senso.