sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:BUITENLANDSE SLEUTEL/ON DELETE CASCADE

Een externe sleutel met een cascade-verwijdering betekent dat als een record in de bovenliggende tabel wordt verwijderd, de bijbehorende records in de onderliggende tabel automatisch worden verwijderd. Dit wordt trapsgewijs verwijderen genoemd.

U zegt het tegenovergestelde, dit is niet dat wanneer u uit de onderliggende tabel verwijdert, records uit de bovenliggende tabel worden verwijderd.

UPDATE 1:

OP VERWIJDEREN CASCADE optie is om op te geven of u rijen wilt verwijderen in een onderliggende tabel wanneer overeenkomstige rijen worden verwijderd in de bovenliggende tabel. Als u geen trapsgewijze verwijderingen opgeeft, voorkomt het standaardgedrag van de databaseserver dat u gegevens in een tabel verwijdert als andere tabellen ernaar verwijzen.

Als u deze optie opgeeft, verwijdert de databaseserver later, wanneer u een rij in de bovenliggende tabel verwijdert, ook alle rijen die aan die rij zijn gekoppeld (buitenlandse sleutels) in een onderliggende tabel. Het belangrijkste voordeel van de functie cascading-deletes is dat u de hoeveelheid SQL-instructies die u nodig hebt om verwijderacties uit te voeren, kunt verminderen.

Het gaat er dus allemaal om wat er gebeurt als je rijen verwijdert uit de bovenliggende tabel, niet uit de onderliggende tabel.

Dus in uw geval, wanneer de gebruiker items uit de CAT-tabel verwijdert, worden rijen verwijderd uit de boekentabel. :)

Ik hoop dat dit je helpt :)



  1. Hoe een .sql-bestand exporteren en importeren vanaf de opdrachtregel met opties?

  2. PostgreSQL:lopende telling van rijen voor een zoekopdracht 'per minuut'

  3. Hoe DB_NAME() werkt in SQL Server

  4. Python from scratch:maak een dynamische website