sql >> Database teknologi >  >> RDS >> Mysql

Begrænsning i MYSQL-tabel?

Der er et par ting ved de to begrænsninger, du ønsker at pålægge:

  1. Ny indsat række kan ikke have NULL-værdi for kolonnen Parent_group.

    • Du kan kun pålægge en NOT NULL-begrænsning på en kolonne, hvis den indeholder alle ikke-nul-værdier. Du skal bruge en nulværdi i denne kolonne for rodnoden.
    • Til dette kan du bruge CHECK-begrænsningen. Læs mere om KONTROLBEGRÆNSNING her .
    • Du kan sætte

Dette vil kun tillade en NULL-værdi for rodnoden og vil gennemtvinge en NOT NULL-værdi for hver anden række i tabellen.

  1. Tilføj en begrænsning, så RootGroup-rækken ikke kan slettes.

    • At du allerede har defineret en fremmednøgle mellem parent_group og pkey , vil databasen automatisk håndhæve referentiel integritet og forbyde rodnoden (eller for den sags skyld enhver overordnet node) i at blive slettet. Databasen returnerer en fejl, hvis en SLETT forsøges på en overordnet eller rodnode.
  2. For det punkt, der er nævnt i EDIT sektionen, kan du sætte en simpel check-begrænsning på tabellen som
    CHECK (parent_group != pkey) . Dette burde gøre arbejdet for dig.

Læs om, hvordan du definerer begrænsninger for fremmednøgle, og hvordan du bruger dem til at håndhæve referentiel integritet. Gå også gennem det link, jeg har postet ovenfor eller her før du anvender disse forslag.




  1. Bedste måde at sikre SQL-forespørgsel i PHP

  2. Oracle SQL Regex returnerer ikke forventede resultater

  3. Konverter datetime værdi til streng

  4. MySql-doktrin:find ud af, om den givne variabel er IN array-egenskab