sql >> Database >  >> RDS >> Mysql

Beperk de waarde van een MySQL-datatype tot een specifiek bereik (bij voorkeur niet ENUM)

U kunt een tabel met toegestane stemwaarden maken en een externe sleutel toevoegen aan uw stemtabel, dus wanneer u een stem probeert in te voegen met een andere user_vote-waarde dan de bestaande in uw allow_votes-tabel, krijgt u een fout met de beperking mislukt:

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



  1. Ongeldig parametertype (numpy.int64) bij het invoegen van rijen met executemany()

  2. Standaardwaarde instellen als lege tekenreeks wordt doorgegeven

  3. Voorkom SQL-injectie in JavaScript / Node.js

  4. Voorkomen van SQL-injectie op inlogpagina in PHP