Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Proteger coluna, não permitir atualização, permitir inserção apenas se NULL no MySQL


Sim, no MySQL os gatilhos são a única maneira de fazer isso. MySQL não suporta restrições.

Seu gatilho não está exatamente certo. Primeiro, você tem update on date , mas isso deve ser update on <table name> . Segundo, você está verificando o valor de data usado para a atualização . Talvez você queira dizer:
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;

Um insert gatilho nesta condição não faz sentido.