Bonjour,
J'aurais une question sur les clés étrangères/contraintes en MySQL (et si possible compatible avec SQLite pour mon environnement de test). J'ai une table de références que je dois utiliser avec un identifiant numérique et deux colonnes permettant de catégoriser mes références. Un exemple ce trouve dans le CSV ci-après.Ma question est la suivante : Comment déclarer une contrainte pour que le SGBD vérifie la catégorie de ma référence ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ID;Fonctionnalité;Champ;Valeur;Valeur par défaut;Commentaires; 83;Transmission;Type d'entité;;;; 84;Transmission;Délai;Clôture sur transfert;;Equivalent jours : 0 j; 85;Transmission;Délai;1 h;;Equivalent jours : 0 j; 86;Transmission;Délai;48 h;;Equivalent jours : 2 j; 87;Transmission;Délai;72 h;;Equivalent jours : 3 j; 88;Transmission;Délai;5 j;;Equivalent jours : 5 j; 89;Transmission;Délai;30 j;;Equivalent jours : 30 j; 90;Alertes & Actions;Type;Alerte;X;; 91;Alertes & Actions;Type;Action;;; 92;Alertes & Actions;Mode de transmission;Transfert Téléphone;;; 93;Alertes & Actions;Mode de transmission;Notification;;; 94;Alertes & Actions;Mode de transmission;Email;;;
Un code faux que j'ai essayé est le suivant :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CONSTRAINT `AlerteType` FOREIGN KEY (`type`, 'Alerte & Action', 'Type') REFERENCES `references` (`id`, `fonctionnalite`, `champ`)
Le champ `alerte`.`type` doit alors ne permettre que les valeurs 90 et 91 (ou NULL si le champ le permet)
En attendant, toutes les vérifications sont purement applicatives mais une contrainte en base reste souhaitable.
Partager