Não desenho esquemas todos os dias, mas quando o faço, tento configurar as atualizações / exclusões em cascata corretamente para facilitar a administração. Entendo como as cascatas funcionam, mas nunca consigo me lembrar de qual tabela é qual.
Por exemplo, se eu tiver duas tabelas - Parent
e Child
- com uma chave estrangeira nessas Child
referências Parent
e tiver ON DELETE CASCADE
, quais registros acionam uma cascata e quais são excluídos pela cascata? Meu primeiro palpite seria que os Child
registros sejam excluídos quando os Parent
registros forem excluídos, pois os Child
registros dependem dos Parent
registros, mas isso ON DELETE
é ambíguo; isso pode significar excluir o Parent
registro quando o Child
registro for excluído ou pode excluir o Child
registro quando ele Parent
for excluído. Então qual é?
Eu gostaria que a sintaxe fosse ON PARENT DELETE, CASCADE
, ON FOREIGN DELETE, CASCADE
ou algo semelhante, para remover a ambiguidade. Alguém tem alguma mnemônica para lembrar disso?