INCRÉMENTATION AUTOMATIQUE SQL
L'incrémentation automatique génère un numéro unique lorsqu'un nouvel enregistrement est inséré dans la table.
Champ AUTO INCREMENT
Nous souhaitons généralement créer automatiquement la valeur du champ de clé primaire à chaque fois qu'un nouvel enregistrement est inséré.
Nous pouvons créer un champ à incrémentation automatique dans le tableau.
Syntaxe pour MySQL
L'instruction SQL suivante définit la colonne "ID" dans la table "Personnes" comme un champ de clé primaire à incrémentation automatique :
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Adresse varchar(255),
Ville varchar(255),
PRIMARY KEY ( ID)
)
MySQL utilise le mot-clé AUTO_INCREMENT pour effectuer des tâches d'auto-incrémentation.
Par défaut, AUTO_INCREMENT commence à 1 et s'incrémente de 1 pour chaque nouvel enregistrement.
Pour que la séquence AUTO_INCREMENT commence par une valeur différente, utilisez la syntaxe SQL suivante :
Pour être dans Pour insérer un nouvel enregistrement dans la table "Personnes", nous n'avons pas besoin de préciser de valeur pour la colonne "ID" (une valeur unique sera ajoutée automatiquement) :
VALUES ( 'Lars','Monsen')
L'instruction SQL ci-dessus insérera un nouvel enregistrement dans la table "Personnes". La colonne "ID" se verra attribuer une valeur unique. La colonne « FirstName » sera définie sur « Lars » et la colonne « LastName » sera définie sur « Monsen ».
Syntaxe pour SQL Server
L'instruction SQL suivante définit la colonne "ID" dans la table "Personnes" comme champ de clé primaire à incrémentation automatique :
(
ID int IDENTITY(1,1) CLÉ PRIMAIRE,
Nom varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Ville varchar(255)
)
MS SQL Server utilise le mot-clé IDENTITY pour effectuer des tâches d'auto-incrémentation.
Dans l'exemple ci-dessus, l'IDENTITÉ commence à 1 et s'incrémente de 1 à chaque nouvel enregistrement.
Astuce : Pour spécifier que la colonne "ID" commence à 10 et s'incrémente de 5, remplacez l'identité par IDENTITY(10,5).
Pour insérer un nouvel enregistrement dans la table "Personnes", nous n'avons pas besoin de préciser de valeur pour la colonne "ID" (une valeur unique est automatiquement ajoutée) :
VALEURS ('Lars','Monsen')
L'instruction SQL ci-dessus insérera un nouvel enregistrement dans la table "Personnes". La colonne "ID" se verra attribuer une valeur unique. La colonne « FirstName » sera définie sur « Lars » et la colonne « LastName » sera définie sur « Monsen ».
Syntaxe pour Access
L'instruction SQL suivante définit la colonne "ID" dans la table "Personnes" comme un champ de clé primaire à incrémentation automatique :
(
ID Entier CLÉ PRIMAIRE AUTOINCREMENT,
Nom varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Ville varchar(255)
)
MS Access utilise le mot-clé AUTOINCREMENT pour effectuer des tâches d'auto-incrémentation.
Par défaut, AUTOINCREMENT commence à 1 et s'incrémente de 1 pour chaque nouvel enregistrement.
Astuce : Pour spécifier que la colonne "ID" commence à 10 et s'incrémente de 5, veuillez remplacer l'auto-incrémentation par AUTOINCREMENT(10,5).
Pour insérer un nouvel enregistrement dans la table "Personnes", nous n'avons pas besoin de préciser de valeur pour la colonne "ID" (une valeur unique est automatiquement ajoutée) :
VALUES ('Lars','Monsen')
L'instruction SQL ci-dessus insérera un nouvel enregistrement dans la table "Persons". La colonne "ID" se verra attribuer une valeur unique. La colonne « FirstName » sera définie sur « Lars » et la colonne « LastName » sera définie sur « Monsen ».
Syntaxe pour Oracle
Dans Oracle, le code est un peu plus compliqué.
Vous devez créer le champ d'auto-incrémentation à partir d'un objet séquence (qui génère une séquence de nombres).
Veuillez utiliser la syntaxe CREATE SEQUENCE suivante :
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Le code ci-dessus crée un objet séquence nommé seq_person, qui commence par 1 et s'incrémente de 1. Cet objet met en cache 10 valeurs pour améliorer les performances. L'option de cache spécifie le nombre de valeurs de séquence à stocker afin d'améliorer la vitesse d'accès.
Pour insérer un nouvel enregistrement dans la table "Persons", nous devons utiliser la fonction nextval (qui récupère la valeur suivante de la séquence seq_person) :
VALUES (seq_person.nextval,'Lars','Monsen')
L'instruction SQL ci-dessus insérera un nouvel enregistrement dans la table "Personnes". La colonne "ID" recevra le numéro suivant de la séquence seq_person. La colonne « FirstName » sera définie sur « Lars » et la colonne « LastName » sera définie sur « Monsen ».