Los últimos tutoriales de desarrollo web
 

SQL Incremento automático Campo


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" .