Quando in una tabella inseriamo un campo numerico autoincrementale in generale questo parte dal valore 1 e si autoincrementa di 1 ad ogni nuova riga.
Si tratta di un sistema valido per ottenere chiavi primarie univoche.
MySQL
CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
SQL Server
CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MS Access
CREATE TABLE Persons
(
P_Id PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Può capitare però di avere la necessità che il campo autoincrementale abbia come inizio un valore definito inizialmente e magari che si incrementi per più di 1.
In tal caso è sufficiente aggiungere
MySQLALTER TABLE Persons AUTO_INCREMENT=100SQL Server
..P_Id int PRIMARY KEY IDENTITY(100,1),..MS Access
..P_Id PRIMARY KEY AUTOINCREMENT(100,1),..
E' possibile, in oltre, cambiare il valore della nostra richiedere di mutare il valore del campo, ad esempio, l'ultima riga inserita ha P_Id = 1231 e desideriamo che la prossima riga abbia P_Id = 2453 è sufficiente aggiungere alla query di inserimento anche il valore desiderato per campo numerico autoincrementale
INSERT INTO Persons (P_Id, LastName, FirstName, Address, City)
VALUES (2453,'Rossi', 'Mario', 'Via Roma,5', 'Milano)