sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL:CIZÍ KLÍČ/ON DELETE CASCADE

Cizí klíč s kaskádovým mazáním znamená, že pokud je smazán záznam v nadřazené tabulce, budou automaticky smazány i odpovídající záznamy v podřízené tabulce. Toto se nazývá kaskádové odstranění.

Říkáte opačným způsobem, není to tak, že když smažete z podřízené tabulky, budou smazány záznamy z nadřazené tabulky.

UPDATE 1:

V KASKÁDĚ ODSTRANIT možnost je určit, zda chcete odstranit řádky v podřízené tabulce, když jsou odstraněny odpovídající řádky v nadřazené tabulce. Pokud nezadáte kaskádové mazání, výchozí chování databázového serveru vám zabrání smazat data v tabulce, pokud na ni odkazují jiné tabulky.

Pokud zadáte tuto volbu, databázový server později, když odstraníte řádek v nadřazené tabulce, odstraní také všechny řádky přidružené k tomuto řádku (cizí klíče) v podřízené tabulce. Hlavní výhodou funkce kaskádového mazání je to, že vám umožňuje snížit množství příkazů SQL, které potřebujete k provedení akcí mazání.

Vše je tedy o tom, co se stane, když odstraníte řádky z nadřazené tabulky, nikoli z podřízené tabulky.

Takže ve vašem případě, když uživatel odstraní položky z tabulky CATs, budou řádky odstraněny z tabulky knih. :)

Doufám, že vám to pomůže :)



  1. Zlepšení výkonu backendu Část 2/3:Použití databázových indexů

  2. Jak nastavit každou položku načtenou z databáze SQLite do vlastního Textview

  3. Zálohování databází SQL pomocí VDP Advanced SQL Agent

  4. UNION ALL vs OR podmínka v dotazu serveru SQL