Existuje několik věcí ohledně dvou omezení, která chcete uložit:
-
Nový vložený řádek nemůže mít pro sloupec Parent_group hodnotu NULL.
- Omezení NOT NULL můžete uložit na sloupec pouze v případě, že obsahuje všechny hodnoty, které nejsou null. Pro kořenový uzel potřebujete v tomto sloupci hodnotu null.
- K tomu můžete použít omezení CHECK. Přečtěte si více o CHECK CONSTRAINT zde .
- Můžete dát
To umožní hodnotu NULL pouze pro kořenový uzel a vynutí hodnotu NOT NULL pro každý druhý řádek v tabulce.
-
Přidejte omezení, aby nebylo možné odstranit řádek RootGroup.
- Že jste již definovali cizí klíč mezi
parent_group
apkey
databáze automaticky vynucuje referenční integritu a zakáže odstranění kořenového uzlu (nebo jakéhokoli nadřazeného uzlu). Databáze vrátí chybu, pokud se pokusíte o DELETE na jakémkoli nadřazeném nebo kořenovém uzlu.
- Že jste již definovali cizí klíč mezi
-
Pro bod uvedený v části UPRAVIT sekce, můžete na tabulku umístit jednoduché kontrolní omezení jako
CHECK (parent_group != pkey)
. To by mělo udělat práci za vás.
Přečtěte si o tom, jak definovat omezení cizího klíče a jak je používat k vynucení referenční integrity. Projděte si také odkaz, který jsem zveřejnil výše, nebo zde než použijete tyto návrhy.