sql >> Base de Datos >  >> RDS >> Mysql

Limite el valor de un tipo de datos MySQL a un rango específico (preferiblemente no ENUM)

Puede crear una tabla de valores de voto permitidos y agregar una clave externa en su tabla de votos, de modo que cuando intente insertar un voto con un valor de voto de usuario diferente al existente en su tabla de votos permitidos, obtenga un error de falla de restricción:

CREATE TABLE allowed_votes (
  vote_rank TINYINT UNSIGNED NOT NULL,
  PRIMARY KEY (vote_rank)
) ENGINE = InnoDB;

INSERT INTO allowed_votes( vote_rank ) VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10);

ALTER TABLE votes
ADD FOREIGN KEY (user_vote) REFERENCES allowed_votes (vote_rank);