Maison  >  Article  >  développement back-end  >  Explication sur les champs SQL AUTO INCREMENT

Explication sur les champs SQL AUTO INCREMENT

jacklove
jackloveoriginal
2018-05-08 11:16:391471parcourir

L'incrémentation automatique générera un numéro unique lorsqu'un nouvel enregistrement est inséré dans la table. Cet article l'expliquera en détail.

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 "P_Id" dans la table "Persons" comme clé primaire d'auto-incrémentation :

CREATE TABLE Personnes
(P_Id int NOT NULL AUTO_INCREMENT,LastName varchar(255) NOT NULL,
FirstName varchar(255),
Adresse varchar(255),
Ville varchar(255),PRIMARY KEY (P_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 faire démarrer la séquence AUTO_INCREMENT avec une valeur différente, utilisez la syntaxe SQL suivante :

ALTER TABLE Persons AUTO_INCREMENT=100

Pour être dans la liste "Persons " table Pour insérer un nouvel enregistrement, nous n'avons pas besoin de spécifier de valeur pour la colonne "P_Id" (une valeur unique sera ajoutée automatiquement) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates' )

L'instruction SQL ci-dessus insérera un nouvel enregistrement dans la table "Personnes". "P_Id" se verra attribuer une valeur unique. La colonne « FirstName » sera définie sur « Bill » et la colonne « LastName » sera définie sur « Gates ».

Syntaxe pour SQL Server

L'instruction SQL suivante définit la colonne "P_Id" dans la table "Persons" comme clé primaire d'auto-incrémentation :

CREATE TABLE Persons
(P_Id int IDENTITÉ DE CLÉ PRIMAIRE,LastName varchar(255) NOT NULL,
Prénom varchar(255),
Adresse varchar(255),
Ville varchar(255)
)

MS SQL utilise le mot clé IDENTITY pour effectuer des tâches d'auto-incrémentation.

Par défaut, IDENTITY commence à 1 et s'incrémente de 1 pour chaque nouvel enregistrement.

Pour préciser que la colonne "P_Id" commence par 20 et s'incrémente de 10, veuillez changer l'identité en IDENTITY(20,10)

Pour insérer un nouvel enregistrement dans la table "Personnes", nous n'avons pas besoin de spécifier une valeur pour la colonne "P_Id" (une valeur unique sera ajoutée automatiquement) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates ')

L'instruction SQL ci-dessus insérera un nouvel enregistrement dans la table "Personnes". "P_Id" se verra attribuer une valeur unique. La colonne « FirstName » sera définie sur « Bill » et la colonne « LastName » sera définie sur « Gates ».

Syntaxe pour Access

L'instruction SQL suivante définit la colonne "P_Id" dans la table "Persons" comme clé primaire d'auto-incrémentation :

CREATE TABLE Persons
(P_Id int PRIMARY KEY AUTOINCREMENT,LastName varchar(255) NOT NULL,
FirstName 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.

Pour préciser que la colonne "P_Id" commence par 20 et s'incrémente de 10, veuillez changer l'auto-incrémentation en AUTOINCREMENT(20,10)

Pour insérer un nouvel enregistrement dans la table "Personnes", nous n'avons pas besoin de spécifier une valeur pour la colonne "P_Id" (une valeur unique sera ajoutée automatiquement) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates ')

L'instruction SQL ci-dessus insérera un nouvel enregistrement dans la table "Personnes". "P_Id" se verra attribuer une valeur unique. La colonne « FirstName » sera définie sur « Bill » et la colonne « LastName » sera définie sur « Gates ».

Syntaxe pour Oracle

Dans Oracle, le code est un peu plus compliqué.

Vous devez créer un champ auto-incrémenté via une paire de séquences (l' objet génère une séquence de nombres).

Veuillez utiliser la syntaxe CREATE SEQUENCE suivante :

CREATE SEQUENCE seq_person
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 CACHE spécifie combien de valeurs de séquence sont stockées pour améliorer la vitesse d'accès.

Pour insérer un nouvel enregistrement dans la table "Persons", il faut utiliser la fonction nextval (qui récupère la valeur suivante de la séquence seq_person) :

INSERT INTO Persons (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')

L'instruction SQL ci-dessus insérera un nouvel enregistrement dans la table "Personnes". L'attribution de "P_Id" est le numéro suivant de la séquence seq_person. La colonne « FirstName » sera définie sur « Bill » et la colonne « LastName » sera définie sur « Gates ».

Recommandations associées :

À propos des opérations liées à l'instruction SQL ALTER TABLE

À propos de l'annulation des index, des tables et des bases de données SQL Connaissances pertinentes

Connaissances connexes sur les contraintes SQL DEFAULT

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn