Service SQL IBM i (AS/400) · Procédure
QSYS2.RESTART_IDENTITY
Aligner la colonne identité d'une table
Procédure qui détermine la prochaine valeur de la colonne identité d'une table source et règle la table cible sur la même valeur de départ.
À quoi ça sert
Après une copie ou une restauration de table, la colonne identité de la table cible peut repartir d'une valeur qui ne suit pas celle de la source. Cette procédure lit la prochaine valeur de la colonne identité de la table source (SOURCE_SYSTEM_TABLE_SCHEMA et SOURCE_SYSTEM_TABLE_NAME) et modifie la table cible (TARGET_SYSTEM_TABLE_SCHEMA et TARGET_SYSTEM_TABLE_NAME) pour qu'elle reparte de la même valeur.
Les noms attendus sont des noms système de tables. Elle modifie la définition de la table cible et n'a pas de mode aperçu.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
CALL QSYS2.RESTART_IDENTITY('JOBISQL', 'CLIENT', 'JOBISQL', 'CLIENTNEW');
INSERT INTO JOBISQL.CLIENTNEW (NOM) VALUES ('Premier client de la nouvelle table');
SELECT ID, NOM FROM JOBISQL.CLIENTNEW
Ce que l'IBM i a renvoyé le 01/10/2026 (1 ligne au plus) :
| ID | NOM |
|---|---|
| 21 | Premier client de la nouvelle table |
Données anonymisées : les noms de système, de profils, de
bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma
JOBISQL sont des objets de démonstration créés pour ce site.
L'exemple d'IBM
Déterminer la prochaine valeur d'une colonne identité dans OLDLIB/OLDTABLE et régler NEWLIB/NEWTABLE sur cette même valeur.
-- Description: Determine the next value for an identity column in
-- OLDLIB/OLDTABLE and change NEWLIB/NEWTABLE such that it has the
-- same next value for its identity value
CALL QSYS2.RESTART_IDENTITY('OLDLIB', 'OLDTABLE',
'NEWLIB', 'NEWTABLE');
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
SOURCE_SYSTEM_TABLE_SCHEMA |
VARCHAR(10) | obligatoire | Schéma système de la table source |
SOURCE_SYSTEM_TABLE_NAME |
VARCHAR(10) | obligatoire | Nom système de la table source |
TARGET_SYSTEM_TABLE_SCHEMA |
VARCHAR(10) | obligatoire | Bibliothèque système de la table cible |
TARGET_SYSTEM_TABLE_NAME |
VARCHAR(10) | obligatoire | Nom système de la table cible |