Altova DatabaseSpy 2024 Professional Edition

Lorsqu’une contrainte de validation est définie, les données seront validées conformément à l’expression spécifiée dans la contrainte de validation avant que celle-ci ne soit ajoutée à la table. Les données qui font que la validation échoue ne seront pas ajoutées.

 

Dans cette section du tutoriel, vous allez créer une contrainte de validation qui garantit que les colonnes « Mother » et « Father » de tblAnimalBirths ne sont pas les mêmes.

Pour définir la contrainte de validation :

1.Ouvrir le projet "ZooDB" créé précédemment et double-cliquez sur la source de données dbs_ic_connected ZooDBConnect pour vous y connecter.

2.Dans le navigateur en ligne, cliquez avec la touche de droite sur tblAnimalBirths et sélectionnez Éditeur Design | Afficher dans nouvel Éditeur Design depuis le menu contextuel.

3.Cliquez avec la touche de droite dans la design de table et sélectionnez Insérer nouveau | Contrainte de validation depuis le menu contextuel. Une contrainte de validation est créée dans le design, ayant le nom <generated> et l’entrée est sélectionnée pour l’édition.

dbs_zoo_check_01

4.En option, changez le nom de Contrainte de <generated> à « CK_CheckParents » et appuyez sur Enter. Si vous gardez le nom comme <generated>, le nom de clé sera automatiquement généré par la base de données.

5.Dans la colonne d’expression, double-cliquez sur l’entrée "[expression required]", saisissez "Mother <> Father », et appuyez sur Enter.

dbs_zoo_check_02

6.Dans la fenêtre Script de changement de structure de la base de données, cliquez sur le bouton Execute Change Script ic_execute-sql pour exécuter le script de changement et pour valider la nouvelle contrainte de validation dans la base de données.

 

Tester la contrainte de validation

Une fois que la contrainte de validation a été validée dans la base de données, vous ne pouvez plus saisir la même ID animal dans les colonnes "Mother" et "Father". Par exemple, une instruction SQL comme celle en dessous résultera en une erreur car elle tente d’ajouter un enregistrement là où les valeurs "Mother" et "Father" sont identiques :

 

INSERT INTO [ZooDB].[dbo].[tblAnimalBirths] ([BirthDate],

                                            [Mother],

                                            [Father],

                                            [Veterinarian],

                                            [NumberInLitter])

VALUES ('2019-04-24 00:00:00', 5055, 5055, 4, 3) ;

© 2017-2023 Altova GmbH