Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Intervalo de números inteiros do SQL ao criar tabelas


Nota do autor :as duas primeiras partes desta resposta estão incorretas. Eu pensei que o MySQL suportava CHECK restrições e isso não aconteceu. Ainda não. Para limitar as colunas a uma lista simples de valores, use o ENUM abordagem no final desta resposta. Se a lógica for mais complicada (intervalo de valores, valor baseado em outra coluna, etc.), a única opção do MySQL é um gatilho.

Você precisa de um CHECK restrição se for um INT :
CREATE TABLE Site (
  SiteID INT,
  CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
  ... and the rest

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

Ou se você pode viver com uma string SiteID, então:
CREATE TABLE Site (
  SiteID ENUM('1', '2', '3', '4'),
  ... and the rest