Incremento automatico consente un numero univoco generato quando un nuovo record viene inserito in una tabella.
AUTO incrementare un campo
Molto spesso vorremmo che il valore del campo chiave primaria deve essere creato automaticamente ogni volta che viene inserito un nuovo record.
Vorremmo creare un campo di incremento automatico in una tabella.
Sintassi per MySQL
La seguente istruzione SQL definisce la "ID" colonna per essere un campo chiave primaria di incremento automatico nella "Persons" tabella:
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 utilizza la parola chiave AUTO_INCREMENT per eseguire una funzione di auto-incremento.
Per impostazione predefinita, il valore di partenza per AUTO_INCREMENT è 1, e si incrementerà di 1 per ogni nuovo record.
Per far iniziare la sequenza AUTO_INCREMENT con un altro valore, utilizzare la seguente istruzione SQL:
ALTER TABLE Persons AUTO_INCREMENT=100
Per inserire un nuovo record nella "Persons" tavolo, avremo non è necessario specificare un valore per la "ID" colonna (un valore unico verrà aggiunto automaticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
L'istruzione SQL di cui sopra sarebbe inserire un nuovo record nella "Persons" tavolo. Il "ID" colonna sarebbe stato assegnato un valore univoco. Il "FirstName" colonna verrebbe impostato a "Lars" e "LastName" colonna sarebbe impostato su "Monsen" .
Sintassi per SQL Server
La seguente istruzione SQL definisce la "ID" colonna per essere un campo chiave primaria di incremento automatico nella "Persons" tabella:
CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
La MS SQL Server utilizza la parola chiave IDENTITY per eseguire una funzione di auto-incremento.
Nell'esempio precedente, il valore di partenza di identità è 1, e questo valore viene aumentato di 1 per ogni nuovo record.
Suggerimento: per specificare che il "ID" colonna deve iniziare al valore di 10 e l'incremento del 5, cambiarlo all'identità (10,5).
Per inserire un nuovo record nella "Persons" tavolo, avremo non è necessario specificare un valore per la "ID" colonna (un valore unico verrà aggiunto automaticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
L'istruzione SQL di cui sopra sarebbe inserire un nuovo record nella "Persons" tavolo. Il "ID" colonna sarebbe stato assegnato un valore univoco. Il "FirstName" colonna verrebbe impostato a "Lars" e "LastName" colonna sarebbe impostato su "Monsen" .
Sintassi per l'accesso
La seguente istruzione SQL definisce la "ID" colonna per essere un campo chiave primaria di incremento automatico nella "Persons" tabella:
CREATE TABLE Persons
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
La MS Access utilizza la parola chiave AUTOINCREMENT per eseguire una funzione di auto-incremento.
Per impostazione predefinita, il valore di partenza per AUTOINCREMENT è 1, e si incrementerà di 1 per ogni nuovo record.
Suggerimento: per specificare che il "ID" colonna deve iniziare al valore di 10 e l'incremento del 5, cambiare la autoincrement a AUTOINCREMENT (10,5).
Per inserire un nuovo record nella "Persons" tavolo, avremo non è necessario specificare un valore per la "ID" colonna (un valore unico verrà aggiunto automaticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
L'istruzione SQL di cui sopra sarebbe inserire un nuovo record nella "Persons" tavolo. Il "P_Id" colonna sarebbe stato assegnato un valore univoco. Il "FirstName" colonna verrebbe impostato a "Lars" e "LastName" colonna sarebbe impostato su "Monsen" .
Sintassi per Oracle
In Oracle il codice è un po 'più complicato.
Si dovrà creare un campo di incremento automatico con l'oggetto di sequenza (questo oggetto genera una sequenza numerica).
Utilizzare la seguente sintassi CREATE sequenza:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Il codice precedente crea un oggetto sequenza di chiamata seq_person, che inizia con 1 e incrementerà di 1. Sarà anche memorizzare nella cache fino a 10 valori per le prestazioni. L'opzione di cache specifica quanti valori di sequenza verranno memorizzati nella memoria per un accesso più rapido.
Per inserire un nuovo record nella "Persons" tavolo, dovremo usare la funzione nextval (questa funzione recupera il valore successivo da sequenza seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
L'istruzione SQL di cui sopra sarebbe inserire un nuovo record nella "Persons" tavolo. Il "ID" colonna verrebbe assegnato il numero successivo dalla sequenza seq_person. Il "FirstName" colonna verrebbe impostato a "Lars" e "LastName" colonna sarebbe impostato su "Monsen" .