Incrémenter une colonne automatiquement

Incrémenter une colonne automatiquement

SQL 2018-10-22

Exemple : nous avons une colonne NUM_DOSSIER qui doit contenir un numéro unique mais elle n'est pas incrémentée. Si la table fait 5 lignes cela serait assez simple de le faire à la main, mais qu'en est-il du cas ou la table fait plusieurs centaines de lignes?

1 - Création d'une table volatile pour mettre de côté les résultats du CSUM

CREATE VOLATILE TABLE VOLAT
(
LINE DECIMAL(2),
NUM DECIMAL(8)
) ON COMMIT PRESERVE ROWS;

2 - Dans la table volatile on INSERT le résultat du CSUM ainsi qu'un ID unique non null (ici NUM_DOSSIER)

INSERT INTO VOLAT (LINE, NUM)
SELECT CSUM(1,NUM_DOSSIER), NUM_DOSSIER FROM TABLE;

3 - On update la table voulue avec les valeurs

UPDATE TABLE
FROM VOLAT 
SET T_LINE = LINE 
WHERE NUM_DOSSIER = NUM;