SQL AUTO INCREMENTCampos
Auto-increment genera un número único cuando se inserta un nuevo registro en la tabla.
Campo AUTO INCREMENT
Normalmente queremos crear automáticamente el valor del campo clave primaria cada vez que se inserta un nuevo registro.
Podemos crear un campo auto-increment en una tabla.
Sintaxis para MySQL
La siguiente sentencia SQL define la columna "ID" en la tabla "Persons" como un campo de clave primaria auto-increment:
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
MySQL utiliza la palabra clave AUTO_INCREMENT para realizar la tarea de auto-increment.
De forma predeterminada, el valor inicial de AUTO_INCREMENT es 1 y se incrementa en 1 por cada nuevo registro.
Para que la secuencia AUTO_INCREMENT comience con otro valor, use la siguiente sintaxis SQL:
Para insertar un nuevo registro en la tabla "Persons", no es necesario especificar un valor para la columna "ID" (se agregará automáticamente un valor único):
VALUES ('Lars','Monsen')
La sentencia SQL anterior inserta un nuevo registro en la tabla "Persons". A la columna "ID" se le asignará un valor único. La columna "FirstName" se establecerá en "Lars" y la columna "LastName" se establecerá en "Monsen".
Sintaxis para SQL Server
La siguiente sentencia SQL define la columna "ID" en la tabla "Persons" como un campo de clave primaria auto-increment:
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MS SQL Server utiliza la palabra clave IDENTITY para realizar la tarea de auto-increment.
En el ejemplo anterior, el valor inicial de IDENTITY es 1 y se incrementa en 1 por cada nuevo registro.
Sugerencia:Para especificar que la columna "ID" comience en 10 y se incremente en 5, cambie identity a IDENTITY(10,5).
Para insertar un nuevo registro en la tabla "Persons", no es necesario especificar un valor para la columna "ID" (se agregará automáticamente un valor único):
VALUES ('Lars','Monsen')
La sentencia SQL anterior inserta un nuevo registro en la tabla "Persons". A la columna "ID" se le asignará un valor único. La columna "FirstName" se establecerá en "Lars" y la columna "LastName" se establecerá en "Monsen".
Sintaxis para Access
La siguiente sentencia SQL define la columna "ID" en la tabla "Persons" como un campo de clave primaria auto-increment:
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MS Access utiliza la palabra clave AUTOINCREMENT para realizar la tarea de auto-increment.
De forma predeterminada, el valor inicial de AUTOINCREMENT es 1 y se incrementa en 1 por cada nuevo registro.
Sugerencia:Para especificar que la columna "ID" comience en 10 y se incremente en 5, cambie autoincrement a AUTOINCREMENT(10,5).
Para insertar un nuevo registro en la tabla "Persons", no es necesario especificar un valor para la columna "ID" (se agregará automáticamente un valor único):
VALUES ('Lars','Monsen')
La sentencia SQL anterior inserta un nuevo registro en la tabla "Persons". A la columna "ID" se le asignará un valor único. La columna "FirstName" se establecerá en "Lars" y la columna "LastName" se establecerá en "Monsen".
Sintaxis para Oracle
En Oracle, el código es un poco más complejo.
Debe crear el campo auto-increment mediante un objeto sequence (dicho objeto genera una secuencia de números).
Utilice la siguiente sintaxis de CREATE SEQUENCE:
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
El código anterior crea un objeto sequence llamado seq_person que comienza en 1 y se incrementa en 1. Dicho objeto almacena en caché 10 valores para mejorar el rendimiento. La opción cache especifica cuántos valores de secuencia se almacenarán para acceder más rápido.
Para insertar un nuevo registro en la tabla "Persons", debemos usar la función nextval (dicha función obtiene el siguiente valor de la secuencia seq_person):
VALUES (seq_person.nextval,'Lars','Monsen')
La sentencia SQL anterior inserta un nuevo registro en la tabla "Persons". A la columna "ID" se le asignará el siguiente número de la secuencia seq_person. La columna "FirstName" se establecerá en "Lars" y la columna "LastName" se establecerá en "Monsen".
Otras extensiones