phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Configurando relações de tabela o que Cascade, Set Null e Restrict fazem?


CASCADE propagará a alteração quando o pai for alterado. (Se você excluir uma linha, as linhas em tabelas restritas que fazem referência a essa linha também serão excluídas etc.)

SET NULL define o valor da coluna como NULL quando uma linha pai desaparece.

RESTRICT faz com que a tentativa de DELETE de uma linha pai falhe.

EDIT:Você não perguntou sobre eles, mas o padrão SQL define duas outras ações:SET DEFAULT e NO ACTION . No MySQL, NO ACTION é equivalente a RESTRICT . (Em alguns SGBDs, NO ACTION é uma verificação adiada, mas no MySQL todas as verificações são imediatas.) O analisador do MySQL aceita SET DEFAULT , mas os mecanismos InnoDB e NDB rejeitam essas instruções, então SET DEFAULT não pode ser usado para um ON UPDATE ou ON DELETE limitação.

Além disso, observe que ações de chave estrangeira em cascata não ativam gatilhos no MySQL.