PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL:FOREIGN KEY/ON DELETE CASCADE


Uma chave estrangeira com uma exclusão em cascata significa que, se um registro na tabela pai for excluído, os registros correspondentes na tabela filho serão excluídos automaticamente. Isso é chamado de exclusão em cascata.

Você está dizendo de maneira oposta, isso não é que, quando você exclui da tabela filho, os registros serão excluídos da tabela pai.
UPDATE 1:

AO EXCLUIR CASCATA A opção é especificar se você deseja que as linhas sejam excluídas em uma tabela filha quando as linhas correspondentes forem excluídas na tabela pai. Se você não especificar exclusões em cascata, o comportamento padrão do servidor de banco de dados impedirá que você exclua dados em uma tabela se outras tabelas fizerem referência a ele.

Se você especificar essa opção, mais tarde, ao excluir uma linha na tabela pai, o servidor de banco de dados também excluirá todas as linhas associadas a essa linha (chaves estrangeiras) em uma tabela filha. A principal vantagem do recurso de exclusões em cascata é que ele permite reduzir a quantidade de instruções SQL necessárias para executar ações de exclusão.

Então, é tudo sobre o que acontecerá quando você excluir linhas da tabela pai e não da tabela filha.

Portanto, no seu caso, quando o usuário remove as entradas da tabela CATs, as linhas serão excluídas da tabela de livros. :)

Espero que isso ajude você :)