Referenční integrita

Introduction to Relational Databases in SQL

Timo Grossenbacher

Data Journalist

Referenční integrita

  • Záznam odkazující na jinou tabulku musí odkazovat na existující záznam v ní
  • Definuje se mezi dvěma tabulkami
  • Vynucuje se prostřednictvím cizích klíčů
Introduction to Relational Databases in SQL

Porušení referenční integrity

Referenční integrita z tabulky A do tabulky B je porušena...

  • ...pokud je smazán záznam v tabulce B, na který odkazuje záznam v tabulce A.
  • ...pokud je vložen záznam v tabulce A odkazující na neexistující záznam v tabulce B.
  • Cizí klíče porušení zabraňují!
Introduction to Relational Databases in SQL

Řešení porušení

CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE NO ACTION
);
CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE CASCADE
);
Introduction to Relational Databases in SQL

Řešení porušení – pokračování

ON DELETE...

  • ...NO ACTION: Vyvolá chybu
  • ...CASCADE: Smaže všechny odkazující záznamy
  • ...RESTRICT: Vyvolá chybu
  • ...SET NULL: Nastaví odkazující sloupec na NULL
  • ...SET DEFAULT: Nastaví odkazující sloupec na výchozí hodnotu
Introduction to Relational Databases in SQL

Podívejme se na příklady!

Introduction to Relational Databases in SQL

Preparing Video For Download...