sql >> Databáze >  >> RDS >> Mysql

Omezení v tabulce MYSQL?

Existuje několik věcí ohledně dvou omezení, která chcete uložit:

  1. 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.

  1. Přidejte omezení, aby nebylo možné odstranit řádek RootGroup.

    • Že jste již definovali cizí klíč mezi parent_group a pkey 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.
  2. 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.




  1. Migrujte PROSTOROVÁ data z Oracle do Postgresql

  2. Přidejte dny k datu v PostgreSQL

  3. Chyba MySQL 10061

  4. Jak mohu nakonfigurovat PostgreSQL pro použití ověřování Windows?