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

SQL-heltalsområde ved oprettelse af tabeller

Forfatterens note :de første to dele af dette svar er forkerte. Jeg troede, at MySQL understøttede CHECK begrænsninger, og det gjorde den ikke. Det gør stadig ikke. For at begrænse kolonner til en simpel liste med værdier, skal du bruge ENUM tilgang i slutningen af ​​dette svar. Hvis logikken er mere kompliceret (værdiområde, værdi baseret på en anden kolonne osv.), er den eneste MySQL-mulighed en trigger.

Du skal bruge en CHECK begrænsning, hvis det er en INT :

CREATE TABLE Site (
  SiteID INT,
  CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
  ... and the rest

Eller:

CREATE TABLE Site (
  SiteID INT,
  CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
  ... and the rest

Eller hvis du kan leve med en streng SiteID så:

CREATE TABLE Site (
  SiteID ENUM('1', '2', '3', '4'),
  ... and the rest



  1. Find værtsnavnet og porten ved hjælp af PSQL-kommandoer

  2. Sådan opdaterer du en kolonne baseret på et filter af en anden kolonne

  3. 5 interessante fakta om databasestyringssystemer

  4. PHP-visningsbillede BLOB fra MySQL