Mysql
 sql >> Base de données >  >> RDS >> Mysql

Limiter la valeur d'un type de données MySQL à une plage spécifique (de préférence pas ENUM)

Vous pouvez créer une table de valeurs de vote autorisées et ajouter une clé étrangère dans votre table de votes. Ainsi, lorsque vous essayez d'insérer un vote avec une valeur user_vote autre que celle existant dans votre table allow_votes, vous obtenez une erreur d'échec de contrainte :

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);