2017-10-16 4 views
1

Comment ajouter une colonne, où les valeurs de cette colonne ne sont pas autorisées Exemple ... âge de colonne, les valeurs qui ne sont pas autorisées sont 1,2,3,6 (d'autres valeurs sont permises) J'ai essayé d'utiliser la contrainte de vérification, mais mySql l'a ignoré ...Ajouter une colonne dans mon SQL, avec des valeurs qui ne sont pas autorisées

Pouvez-vous m'aider avec cette question ou au moins m'envoyer un document à propos de cette question.

Merci beaucoup!

+0

S'il vous plaît envisager d'ajouter plus detals –

+1

Apprenez à poser des questions https://stackoverflow.com/help/how-to-ask Il aidera les gens à vous aider à répondre à votre question. – Eric

+0

Écrire le code dans mysql qui ajoute la couleur de la colonne (varchar (20)) dans les bateaux de table, la valeur par défaut est 'rose', les valeurs de cette colonne non autorisées sont: 'blanc', 'noir', 'rouge' les valeurs sont autorisées !!) ALTER TABLE Les bateaux ajoutent des couleurs de colonnes varchar (20) DEFAULT 'white' ...? La contrainte de vérification est ignorée dans mysql! –

Répondre

0

La contrainte de vérification ne fonctionne pas dans MySql.

Alternatives:

Ajouter deux déclencheurs sur votre table:

  • Avant l'insertion
  • Avant mise à jour

Exemple de requête:

CREATE TRIGGER checkage_bi BEFORE INSERT ON mytable FOR EACH ROW 
    -> BEGIN 
    ->  DECLARE dummy,baddata INT; 
    ->  SET baddata = 0; 
    ->  IF NEW.color = 'white' or NEW.color = 'black' or NEW.color = 'red' THEN 
    ->   SET baddata = 1; 
    ->  END IF;   
    ->  IF baddata = 1 THEN 
    ->   SELECT CONCAT('Cannot Insert This Because Color ',NEW.color,' is Invalid') 
    ->   INTO dummy FROM information_schema.tables; 
    ->  END IF; 
    -> END; $$ 

Vous peut également créer Before Update déclencheur aussi.

Pour plus d'informations click here

Hope it helps!