SQL AUTO INCREMENTПоля
Автоинкремент генерирует уникальное число при вставке новой записи в таблицу.
Поле AUTO INCREMENT
Обычно мы хотим автоматически создавать значение поля первичного ключа при вставке новой записи.
Мы можем создать поле автоинкремента в таблице.
Синтаксис для MySQL
Следующая инструкция SQL определяет столбец "ID" в таблице "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 использует ключевое слово AUTO_INCREMENT для выполнения задачи автоинкремента.
По умолчанию начальное значение AUTO_INCREMENT равно 1, и оно увеличивается на 1 для каждой новой записи.
Чтобы последовательность AUTO_INCREMENT начиналась с другого значения, используйте следующий синтаксис SQL:
Чтобы вставить новую запись в таблицу "Persons", нам не обязательно указывать значение для столбца "ID" (уникальное значение будет добавлено автоматически):
VALUES ('Lars','Monsen')
Приведённая выше инструкция SQL вставляет новую запись в таблицу "Persons". Столбцу "ID" будет присвоено уникальное значение. Столбец "FirstName" будет установлен в "Lars", а столбец "LastName" — в "Monsen".
Синтаксис для SQL Server
Следующая инструкция SQL определяет столбец "ID" в таблице "Persons" как автоинкрементное поле первичного ключа:
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MS SQL Server использует ключевое слово IDENTITY для выполнения задачи автоинкремента.
В примере выше начальное значение для IDENTITY равно 1, и оно увеличивается на 1 для каждой новой записи.
Совет:Чтобы указать, что столбец "ID" начинается с 10 и увеличивается на 5, измените identity на IDENTITY(10,5).
Чтобы вставить новую запись в таблицу "Persons", нам не обязательно указывать значение для столбца "ID" (уникальное значение будет добавлено автоматически):
VALUES ('Lars','Monsen')
Приведённая выше инструкция SQL вставляет новую запись в таблицу "Persons". Столбцу "ID" будет присвоено уникальное значение. Столбец "FirstName" будет установлен в "Lars", а столбец "LastName" — в "Monsen".
Синтаксис для Access
Следующая инструкция SQL определяет столбец "ID" в таблице "Persons" как автоинкрементное поле первичного ключа:
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MS Access использует ключевое слово AUTOINCREMENT для выполнения задачи автоинкремента.
По умолчанию начальное значение AUTOINCREMENT — 1, и оно увеличивается на 1 для каждой новой записи.
Совет:Чтобы указать, что столбец "ID" начинается с 10 и увеличивается на 5, замените autoincrement на AUTOINCREMENT(10,5).
Чтобы вставить новую запись в таблицу "Persons", нам не обязательно указывать значение для столбца "ID" (уникальное значение будет добавлено автоматически):
VALUES ('Lars','Monsen')
Приведённая выше инструкция SQL вставляет новую запись в таблицу "Persons". Столбцу "ID" будет присвоено уникальное значение. Столбец "FirstName" будет установлен в "Lars", а столбец "LastName" — в "Monsen".
Синтаксис для Oracle
В Oracle код немного сложнее.
Вы должны создать поле автоинкремента с помощью объекта последовательности (который генерирует последовательность чисел).
Используйте следующий синтаксис CREATE SEQUENCE:
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Приведённый выше код создаёт объект последовательности с именем seq_person, который начинается с 1 и увеличивается на 1. Этот объект кэширует 10 значений для повышения производительности. Параметр cache указывает, сколько значений последовательности сохраняется для повышения скорости доступа.
Чтобы вставить новую запись в таблицу "Persons", мы должны использовать функцию nextval (которая извлекает следующее значение из последовательности seq_person):
VALUES (seq_person.nextval,'Lars','Monsen')
Приведённая выше инструкция SQL вставляет новую запись в таблицу "Persons". Столбцу "ID" будет присвоено следующее число из последовательности seq_person. Столбец "FirstName" будет установлен в "Lars", а столбец "LastName" — в "Monsen".
Другие расширения