Incremento automático permite un número único que se genera cuando se inserta un nuevo registro en una tabla.
Incremento automático de un campo
Muy a menudo nos gustaría que el valor del campo de clave principal que se creará de forma automática cada vez que se inserta un nuevo registro.
Nos gustaría crear un campo de incremento automático en una tabla.
Sintaxis para MySQL
La siguiente instrucción SQL define el "ID" columna de ser un campo de clave principal de incremento automático en el "Persons" tabla:
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 usa la palabra clave AUTO_INCREMENT para realizar una función de incremento automático.
Por defecto, el valor inicial para AUTO_INCREMENT es 1, y se incrementará en 1 por cada nuevo registro.
Para permitir que la secuencia AUTO_INCREMENT empezar con otro valor, utilice la siguiente instrucción SQL:
ALTER TABLE Persons AUTO_INCREMENT=100
Para insertar un nuevo registro en la "Persons" tabla, no vamos a tener que especificar un valor para el "ID" la columna (un valor único se añadirá automáticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
La sentencia SQL anterior sería insertar un nuevo registro en la "Persons" tabla. El "ID" la columna se le asigna un valor único. El "FirstName" la columna se establece en "Lars" y el "LastName" la columna se establece en "Monsen" .
Sintaxis para SQL Server
La siguiente instrucción SQL define el "ID" columna de ser un campo de clave principal de incremento automático en el "Persons" tabla:
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 utiliza la palabra clave IDENTIDAD para realizar una función de incremento automático.
En el ejemplo anterior, el valor de partida de identidad es 1, y se incrementará en 1 por cada nuevo registro.
Consejo: Para especificar que el "ID" columna debe comenzar a valor 10 y el incremento en un 5, cambiarlo a la Identidad (10,5).
Para insertar un nuevo registro en la "Persons" tabla, no vamos a tener que especificar un valor para el "ID" la columna (un valor único se añadirá automáticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
La sentencia SQL anterior sería insertar un nuevo registro en la "Persons" tabla. El "ID" la columna se le asigna un valor único. El "FirstName" la columna se establece en "Lars" y el "LastName" la columna se establece en "Monsen" .
Sintaxis para el Acceso
La siguiente instrucción SQL define el "ID" columna de ser un campo de clave principal de incremento automático en el "Persons" tabla:
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 utiliza la palabra clave AutoIncrement para realizar una función de incremento automático.
Por defecto, el valor de partida para AutoIncrement es 1, y se incrementará en 1 por cada nuevo registro.
Consejo: Para especificar que el "ID" columna debe comenzar a valor 10 y el incremento en un 5, cambie el incremento automático de AutoIncrement (10,5).
Para insertar un nuevo registro en la "Persons" tabla, no vamos a tener que especificar un valor para el "ID" la columna (un valor único se añadirá automáticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
La sentencia SQL anterior sería insertar un nuevo registro en la "Persons" tabla. El "P_Id" la columna se le asigna un valor único. El "FirstName" la columna se establece en "Lars" y el "LastName" la columna se establece en "Monsen" .
Sintaxis para Oracle
En Oracle el código es un poco más complicado.
Usted tendrá que crear un campo de incremento automático con el objeto de secuencia (este objeto genera una secuencia de números).
Utilice la siguiente sintaxis CREATE SEQUENCE:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
El código anterior crea un objeto de secuencia llamada seq_person, que comienza con 1 y se incrementará en 1. También en caché hasta 10 valores para el rendimiento. La opción de caché especifica cómo se almacenarán los muchos valores de secuencia en la memoria para un acceso más rápido.
Para insertar un nuevo registro en la "Persons" tabla, tendremos que utilizar la función nextval (esta función recupera el siguiente valor de la secuencia seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
La sentencia SQL anterior sería insertar un nuevo registro en la "Persons" tabla. El "ID" la columna se le asigna el siguiente número de la secuencia seq_person. El "FirstName" la columna se establece en "Lars" y el "LastName" la columna se establece en "Monsen" .