Ultimele tutoriale de dezvoltare web
 

SQL AUTO INCREMENT Câmp


Auto-incrementare permite unui număr unic de a fi generat atunci când un nou record este inserat într-un tabel.


AUTO INCREMENT un câmp

Foarte des ne-ar dori valoarea câmpului cheie primară pentru a crea în mod automat de fiecare dată când se introduce un nou record.

Ne-ar dori să creeze un câmp de auto-increment într-un tabel.


Sintaxa pentru MySQL

Următoarea declarație SQL definește "ID" - "Persons" "ID" coloana pentru a fi un câmp cheie primară auto-creștere în "Persons" tabel:

CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)

MySQL utilizează cuvântul cheie AUTO_INCREMENT pentru a efectua o funcție de auto-increment.

În mod implicit, valoarea de pornire pentru AUTO_INCREMENT este 1, și va crește cu 1 pentru fiecare înregistrare nouă.

Pentru a permite secvența AUTO_INCREMENT începe cu o altă valoare, utilizați următoarea instrucțiune SQL:

ALTER TABLE Persons AUTO_INCREMENT=100

Pentru a introduce un nou record în "Persons" tabel, nu va trebui să specificați o valoare pentru "ID" - (a unique value will be added automatically) "ID" coloana (a unique value will be added automatically) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

Instrucțiunea SQL de mai sus s - ar introduce un nou record în "Persons" tabel. "ID" - "ID" coloana ar fi atribuit o valoare unică. "FirstName" coloana ar fi setat la "Lars" și "LastName" coloana ar fi setat la "Monsen" .


Sintaxa pentru SQL Server

Următoarea declarație SQL definește "ID" - "Persons" "ID" coloana pentru a fi un câmp cheie primară auto-creștere în "Persons" tabel:

CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS SQL Server utilizează cuvântul cheie IDENTITY pentru a efectua o funcție de auto-increment.

In exemplul de mai sus, valoarea de pornire pentru IDENTITY este 1, și va fi incrementat cu 1 pentru fiecare înregistrare nouă.

Indicație: Pentru a specifica faptul că "ID" - IDENTITY(10,5) "ID" coloana ar trebui să înceapă de la o valoare de 10 și creștere de 5, schimbați - l IDENTITY(10,5) .

Pentru a introduce un nou record în "Persons" tabel, nu va trebui să specificați o valoare pentru "ID" - (a unique value will be added automatically) "ID" coloana (a unique value will be added automatically) :

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

Instrucțiunea SQL de mai sus s - ar introduce un nou record în "Persons" tabel. "ID" - "ID" coloana ar fi atribuit o valoare unică. "FirstName" coloana ar fi setat la "Lars" și "LastName" coloana ar fi setat la "Monsen" .


Sintaxa pentru Access

Următoarea declarație SQL definește "ID" - "Persons" "ID" coloana pentru a fi un câmp cheie primară auto-creștere în "Persons" tabel:

CREATE TABLE Persons
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS Access utilizează cuvântul cheie AUTOINCREMENT pentru a efectua o funcție de auto-increment.

În mod implicit, valoarea de pornire pentru AUTOINCREMENT este 1, și va crește cu 1 pentru fiecare înregistrare nouă.

Indicație: Pentru a specifica faptul că "ID" - AUTOINCREMENT(10,5) "ID" coloana ar trebui să înceapă de la o valoare de 10 și creștere de 5, modificați autoincrement la AUTOINCREMENT(10,5) .

Pentru a introduce un nou record în "Persons" tabel, nu va trebui să specificați o valoare pentru "ID" - "ID" coloana (o valoare unică va fi adăugată automat):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

Instrucțiunea SQL de mai sus s - ar introduce un nou record în "Persons" tabel. "P_Id" coloana ar fi atribuit o valoare unică. "FirstName" coloana ar fi setat la "Lars" și "LastName" coloana ar fi setat la "Monsen" .


Sintaxa pentru Oracle

În Oracle codul este un pic mai complicat.

Va trebui să creați un câmp de auto-incrementare cu obiectul de secvență (this object generates a number sequence) de (this object generates a number sequence) .

Utilizați următoarea sintaxă CREATE SECVENȚE:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

Codul de mai sus creaza un obiect de secvență numită seq_person, care începe cu 1 și va crește cu 1. Se va cache, de asemenea, până la 10 valori pentru performanță. Opțiunea cache specifică modul în care multe valori de secvență vor fi stocate în memorie pentru un acces mai rapid.

Pentru a introduce un nou record în "Persons" tabel, va trebui să folosiți funcția NEXTVAL (această funcție preia valoarea următoarea secvență din seq_person):

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

Instrucțiunea SQL de mai sus s - ar introduce un nou record în "Persons" tabel. "ID" - "ID" coloana ar fi atribuit numărul următor din secvența seq_person. "FirstName" coloana ar fi setat la "Lars" și "LastName" coloana ar fi setat la "Monsen" .