Mysql
 sql >> Base de données >  >> RDS >> Mysql

Protéger la colonne, interdire la mise à jour, autoriser uniquement l'insertion si NULL dans MySQL

Oui, dans MySQL, les déclencheurs sont le seul moyen de le faire. MySQL ne prend pas en charge les contraintes.

Votre déclencheur n'est pas tout à fait correct. Tout d'abord, vous avez update on date , mais cela devrait être update on <table name> . Deuxièmement, vous vérifiez la valeur de date utilisée pour la mise à jour . Vous voulez peut-être dire :

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 déclencher sur cette condition n'a pas de sens.