ADDPFCST
Ajouter contrainte fich phys
En bref
La commande ADDPFCST permet d'ajouter des associations de contrainte à un fichier physique particulier.
ADDPFCST se lit ADD
(Ajouter) + PFCST.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
ADDPFCST FILE(…) TYPE(…)
Paramètres
-
FILEFichier obligatoire -
TYPEType de contrainte obligatoire -
KEYClé de la contrainte -
CSTNom de la contrainte -
PRNFILEFichier parent -
PRNKEYClé parente -
DLTRULERègle de suppression -
UPDRULERègle de mise à jour -
CHKCSTContrainte de vérification
Astuce : dans une session 5250, tapez ADDPFCST puis F4 pour
l'invite de saisie, et F1 sur un paramètre pour son aide.
Aide IBM i de la commande
Texte du F1, IBM i 7.5 en français
(bibliothèque QSYS)
Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Sous conditions
La commande ADDPFCST permet d'ajouter des associations de contrainte à un fichier physique particulier. Vous pouvez définir quatre types d'association de contrainte : les contraintes référentielles, les contraintes uniques, les contraintes de clé primaire et les contraintes de vérification. Toutes sont définies au niveau du fichier.
Vous pouvez utiliser des associations de contrainte pour définir des relations entre des fichiers. Ces relations sont utilisées par le système lorsque des modifications sont apportées aux fichiers. La définition d'associations de contrainte permet de contrôler l'intégrité référentielle des données en cours de traitement.
Pour qu'il soit possible de définir ou établir une contrainte référentielle, le fichier parent et le fichier dépendant doivent exister. Cependant, si le fichier parent ou le fichier dépendant ne comporte pas de membre, la contrainte est définie mais n'est pas établie.
Lorsqu'une contrainte référentielle est établie, un chemin d'accès est créé ou un chemin d'accès existant dont les attributs correspondent est partagé. Vous pouvez établir jusqu'à 300 associations de contrainte par fichier. En revanche, une seule contrainte de clé primaire est possible.
Vous pouvez enlever une contrainte à l'aide de la commande RMVPFCST. Vous pouvez visualiser toutes les contraintes associées à un fichier dépendant à l'aide de la commande DSPFD (Afficher une description de fichier).
Restrictions :
- Vous ne pouvez pas ajouter d'association de contrainte à des fichiers système ou à des fichiers décrits dans les programmes.
- Vous ne pouvez pas ajouter d'association de contrainte à un fichier ouvert par votre travail utilisateur.
- Les contraintes référentielles ne peuvent pas s'étendre sur plusieurs pools de mémoire secondaire (ASP).
- Les contraintes ne peuvent pas être ajoutées à un fichier dans la bibliothèque temporaire QTEMP.
- Si une contrainte référentielle ou de vérification ajoutée avec cette commande comporte des enregistrements dont la vérification est en attente lorsqu'elle est établie, la contrainte passe automatiquement à l'état désactivé.
- Cette commande est à unités d'exécution protégées sous certaines conditions. Dans le cas de travaux à unités d'exécution multiples, cette commande n'admet pas l'utilisation d'unités d'exécution multiples pour les fichiers répartis. Elle échoue dans le cas de fichiers répartis utilisant une base de données relationnelle de type *SNA.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| FILE | Fichier | Nom d'objet qualifié | Obligatoire, positionnel 1 |
| Qualificatif 1: Fichier | Nom | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB | ||
| TYPE | Type de contrainte | *REFCST, *UNQCST, *PRIKEY, *CHKCST | Obligatoire, positionnel 2 |
| KEY | Clé de la contrainte | Values (jusqu'à 120 répétitions): Nom | Facultatif, positionnel 3 |
| CST | Nom de la contrainte | Valeur caractère, *GEN | Facultatif |
| PRNFILE | Fichier parent | Nom d'objet qualifié | Facultatif |
| Qualificatif 1: Fichier parent | Nom | ||
| Qualificatif 2: Biblio | Nom, *LIBL, *CURLIB | ||
| PRNKEY | Clé parente | Valeurs uniques: *PRNFILE Autres valeurs (jusqu'à 120 répétitions): Nom |
Facultatif |
| DLTRULE | Règle de suppression | *CASCADE, *NOACTION, *SETDFT, *SETNULL, *RESTRICT | Facultatif |
| UPDRULE | Règle de mise à jour | *NOACTION, *RESTRICT | Facultatif |
| CHKCST | Contrainte de vérification | Valeur caractère | Facultatif |
Fichier (FILE)
Indique le fichier auquel une contrainte est ajoutée. Il doit s'agir d'un fichier physique comprenant un membre au maximum (MAXMBRS(1)).
Dans le cas de l'ajout d'une contrainte référentielle, ce paramètre précise le fichier dépendant et sa bibliothèque. Le fichier parent est indiqué par le paramètre PRNFILE.
Ce paramètre est obligatoire.
Qualificatif 1 : Fichier
- nom
- Indiquez le nom du fichier physique.
Qualificatif 2 : Biblio
- *LIBL
- La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
- *CURLIB
- La recherche porte sur la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est utilisée par défaut.
- nom
- Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.
Type de contrainte (TYPE)
Indique le type de la contrainte à ajouter au fichier physique.
Ce paramètre est obligatoire.
- *REFCST
- Une contrainte référentielle est ajoutée.
Remarques :
- Les contraintes référentielles ne peuvent pas s'étendre sur plusieurs ASP (pools de mémoire secondaire).
- Vous ne pouvez pas ajouter de contrainte référentielle tant que le fichier parent ou dépendant est ouvert.
- Des contraintes référentielles multiples et en double peuvent être ajoutées aux mêmes fichiers dépendant et parent si le nom de contrainte est unique, mais les résultats obtenus peuvent ne pas être ceux escomptés. Pour plus d'informations sur l'ajout de contraintes référentielles multiples ou en double, reportez-vous au manuel Rubrique Base de données de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
- *UNQCST
- Une contrainte unique est ajoutée.
Remarque :Les contraintes uniques en double ne sont pas admises.
- *PRIKEY
- Une contrainte de clé primaire est ajoutée. Il s'agit d'un cas particulier de contrainte unique.
Remarque :Une seule contrainte de clé primaire est admise par fichier physique.
- *CHKCST
- Une contrainte de vérification est ajoutée.
Clé de la contrainte (KEY)
Définit la clé de contrainte qui précise le chemin d'accès pour le type de contrainte indiqué par le paramètre TYPE. La clé de contrainte consiste en une ou plusieurs zones du fichier indiqué par le paramètre FILE. Dans le cas de contraintes référentielles ou uniques, les zones précisées admettent des valeurs indéfinies (ALWNULL). Dans le cas de contraintes de clé primaire, celles-ci ne sont pas admises.
- *REFCST
- La clé associée d'une contrainte référentielle est définie. Si une contrainte référentielle est établie, un chemin d'accès à clé associée est ajouté au fichier dépendant.
- *UNQCST
- La clé d'une contrainte unique est définie. Si une contrainte unique est établie, un chemin d'accès de clé unique est ajouté au fichier physique.
- *PRIKEY
- La clé d'une contrainte de clé primaire est définie. Si une contrainte de clé primaire est établie, un chemin d'accès de clé primaire est ajouté au fichier physique.
- *CHKCST
- Le paramètre KEY ne s'applique pas aux contraintes de vérification. Ces contraintes utilisent le paramètre CHKCST pour spécifier une expression de contrainte de vérification.
- nom
- Indiquez le nom des zones constituant la clé de contrainte que vous définissez. Chaque nom de zone doit exister dans le fichier précisé par le paramètre FILE. Vous pouvez indiquer jusqu'à 120 noms de zone (sans nom en double) en tenant compte des indications suivantes :
- Les noms de zone sont de type *NAME et comportent 10 caractères au maximum.
- Les zones doivent être indiquées en ordre croissant.
- Le nombre maximal d'octets par clé est 32768 (pour plus d'informations sur cette limitation, reportez-vous au manuel Rubrique Base de données de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/).
Nom de la contrainte (CST)
Indique le nom de la contrainte à ajouter.
- *GEN
- Le nom de la contrainte est généré par le système.
- valeur-caractères
- Indiquez le nom de la contrainte. Il doit s'agir d'un nom unique dans la bibliothèque contenant le fichier physique précisé par le paramètre FILE. Vous pouvez indiquer 128 caractères au maximum sans délimiteur, ou 258 caractères délimités par des guillemets (").
Remarque :La casse est conservée lorsque des minuscules sont indiquées.
Fichier parent (PRNFILE)
Définit le fichier parent d'une contrainte référentielle. Il doit s'agir d'un fichier physique comprenant un membre au maximum (MAXMBRS(1)).
Qualificatif 1 : Fichier parent
- nom
- Indiquez le nom du fichier parent de la contrainte référentielle.
Qualificatif 2 : Biblio
- *LIBL
- La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
- *CURLIB
- La recherche porte sur la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est utilisée par défaut.
- nom
- Indiquez le nom de la bibliothèque dans laquelle la recherche doit être effectuée.
Clé parente (PRNKEY)
Définit la clé parente qui précise le chemin d'accès du fichier parent d'une contrainte référentielle. Seule la contrainte unique ou la contrainte de clé primaire d'un fichier parent peut servir à définir une contrainte référentielle. La clé parente correspond à une ou plusieurs zones du fichier précisé par le paramètre PRNFILE.
Valeurs uniques
- *PRNFILE
- Le chemin d'accès du fichier parent est utilisé lorsqu'il s'agit d'une contrainte de clé primaire ou d'une contrainte unique.
Autres valeurs (jusqu'à 120 répétitions)
- nom
- Indiquez le nom des zones constituant la clé de contrainte que vous définissez. Chaque nom de zone doit exister dans le fichier précisé par le paramètre PRNFILE. Vous pouvez indiquer 120 noms de zone (sans nom en double) en tenant compte des indications suivantes :
- Les zones peuvent admettre les valeurs indéfinies.
- Les noms de zone sont de type *NAME et comportent 10 caractères au maximum.
- Les zones doivent être en ordre croissant.
- Les attributs de type et de longueur de zone doivent correspondre à ceux des zones indiquées pour la clé associée
- Le nombre maximal d'octets par clé est 32768 (pour plus d'informations sur cette limitation, reportez-vous au manuel Rubrique Base de données de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/).
Règle de suppression (DLTRULE)
Indique la règle de suppression utilisée pour une contrainte référentielle existant entre un fichier parent et un fichier dépendant. La règle de suppression limite ou définit l'incidence de la suppression d'un enregistrement dans le fichier parent et dans le fichier dépendant.
- *NOACTION
- La règle de suppression sans action est appliquée à la fin de la demande de suppression. Les caractéristiques de cette règle sont les suivantes :
- La suppression d'un enregistrement du fichier parent est admise (n'est pas restreinte) si les données d'une clé parente définie ne correspondent pas à celles d'une clé associée.
- La suppression d'un enregistrement du fichier parent est restreinte (n'a pas lieu) si les données d'une clé parente définie correspondent à celles d'une clé associée.
- *RESTRICT
- La règle de suppression restreinte est appliquée au début de la demande de suppression. Les caractéristiques de cette règle sont les suivantes :
- La suppression d'un enregistrement du fichier parent est admise si les données d'une clé parente définie ne correspondent pas à celles d'une clé associée.
- La suppression d'un enregistrement du fichier parent est restreinte si les données d'une clé parente définie correspondent à celles d'une clé associée.
- *CASCADE
- La règle de suppression en cascade est appliquée. La suppression d'un enregistrement du fichier parent entraîne la suppression des enregistrements correspondants du fichier dépendant lorsque les données d'une clé parente définie correspondent à celles d'une clé associée.
- *SETNULL
- La règle de suppression avec affectation de la valeur indéfinie est appliquée. La suppression d'un enregistrement du fichier parent entraîne la mise à jour des enregistrements correspondants du fichier dépendant si les données d'une clé parente définie correspondent à celles d'une clé associée. Si la zone de la clé associée pour laquelle il y a correspondance admet les valeurs indéfinies, la valeur indéfinie lui est affectée. Sinon, la zone n'est pas mise à jour.
Remarque :Pour que cette règle soit applicable, au moins une zone de la clé associée doit admettre les valeurs indéfinies.
- *SETDFT
- La règle de suppression avec affectation des valeurs par défaut est appliquée. Ses caractéristiques sont les suivantes :
- La suppression d'un enregistrement du fichier parent entraîne la mise à jour des enregistrements correspondants du fichier dépendant lorsque les données d'une clé parente définie correspondent à celles d'une clé associée. Les valeurs de la clé associée pour lesquelles il y a correspondance sont fixées par les valeurs par défaut.
- La valeur de clé associée par défaut doit correspondre à la valeur de clé parente correspondante lorsqu'il n'existe pas de zones qui admettent les valeurs indéfinies.
Règle de mise à jour (UPDRULE)
Indique la règle de mise à jour appliquée à une contrainte référentielle existant entre un fichier parent et un fichier dépendant. La règle de mise à jour restreint ou définit l'incidence de la mise à jour d'un enregistrement du fichier parent et du fichier dépendant.
- *NOACTION
- La règle de mise à jour sans action est appliquée à la fin de la demande de mise à jour. Les caractéristiques de cette règle sont les suivantes :
- La mise à jour d'un enregistrement du fichier parent est admise (n'est pas restreinte) si les données d'une clé parente définie ne correspondent pas à celles d'une clé associée.
- La mise à jour d'un enregistrement du fichier parent est restreinte (n'a pas lieu) si les données d'une clé parente définie correspondent à celles d'une clé associée.
- *RESTRICT
- La règle de mise à jour restreinte est appliquée au début de la demande de mise à jour. Les caractéristiques de cette règle sont les suivantes :
- La mise à jour d'un enregistrement du fichier parent est admise si les données d'une clé parente définie correspondent à celles d'une clé associée.
- La mise à jour d'un enregistrement du fichier parent est restreinte si les données d'une clé parente définie correspondent à celles d'une clé associée.
Contrainte de vérification (CHKCST)
Indique l'expression de contrainte de vérification qui est ajoutée.
- valeur-caractères
- Indiquez l'expression de contrainte de vérification. L'expression a la même syntaxe que celle utilisée pour les conditions de vérification SQL. Reportez-vous au manuel Rubriques de référence SQL DB2 for i dans l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/, pour obtenir de plus amples informations sur les règles de syntaxe.
Exemples
Exemple 1 : Ajout d'une contrainte unique
ADDPFCST FILE(MYLIB/LOCATIONS) TYPE(*UNQCST) KEY(REGION)
CST(Personnel_by_REGION)
Cette commande ajoute une contrainte unique au fichier LOCATIONS de la bibliothèque MYLIB. La zone qui définit le chemin d'accès est REGION. Le nom du chemin d'accès est Personnel_by_REGION.
Exemple 2 : Ajout d'une contrainte référentielle
ADDPFCST FILE(ADMN/PERSONNEL) TYPE(*REFCST) KEY(REGION)
CST(1994Hires) PRNFILE(MYLIB/LOCATIONS)
PRNKEY(REGION) DLTRULE(*CASCADE)
UPDRULE(*RESTRICT)
Cette commande ajoute une contrainte référentielle au fichier PERSONNEL de la bibliothèque ADMN. La zone définissant le chemin d'accès est REGION, ce qui correspond également à la clé du fichier parent LOCATIONS dans la bibliothèque MYLIB. Le nom du chemin d'accès est 1994Hires. Selon la règle de suppression en cascade, si un enregistrement du fichier LOCATIONS est ultérieurement supprimé et qu'il correspond à un enregistrement du fichier PERSONNEL, cet enregistrement également supprimé du fichier PERSONNEL. Selon la règle de mise à jour restreinte, les modifications ultérieures apportées aux enregistrements de fichier LOCATION définis dans la contrainte sont restreintes au début de la demande de mise à jour.
Exemple 3 : Ajout d'une contrainte de vérification
ADDPFCST FILE(PERSONNEL/SALARY) TYPE(*CHKCST)
CST(limite_maximale_salaire) CHKCST('EMPSAL <= 100000')
Cette commande ajoute une contrainte de vérification au fichier SALARY de la bibliothèque PERSONNEL. La contrainte de vérification fait en sorte que le salaire d'un employé ne dépasse pas 100000.
Messages d'erreur
Messages *ESCAPE
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.