Поле AUTO INCREMENT SQL

  • Предыдущая страница SQL Alter
  • Следующая страница SQL View

Автоматическое увеличение создает уникальное число при вставке новой записи в таблицу.

Поле AUTO INCREMENT

Мы обычно хотим, чтобы значение PRIMARY KEY автоматически создавалось при каждом вставлении новой записи.

Мы можем создать auto-increment поле в таблице.

Синтаксис для MySQL

Следующие SQL-запросы определяют столбец "P_Id" в таблице "Persons" как auto-increment PRIMARY KEY:

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)
)

MySQL использует ключевое слово AUTO_INCREMENT для выполнения задачи auto-increment.

По умолчанию, начальное значение AUTO_INCREMENT составляет 1, и каждый новый записывается увеличивается на 1.

Чтобы начать AUTO_INCREMENT последовательность с другого значения, используйте следующий SQL-синтаксис:

ALTER TABLE Persons AUTO_INCREMENT=100

Чтобы вставить новую запись в таблицу "Persons", нам не нужно определять значение для столбца "P_Id" (будет автоматически добавлено уникальное значение):

INSERT INTO Persons (FirstName, LastName)
VALUES ('Bill', 'Gates')

Следующий SQL-запрос вставит новую запись в таблицу "Persons". Значение "P_Id" будет присвоено уникальному значению. Поле "FirstName" будет установлено в "Bill", поле "LastName" будет установлено в "Gates".

Синтаксис для SQL Server

Следующие SQL-запросы определяют столбец "P_Id" в таблице "Persons" как auto-increment PRIMARY KEY:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS SQL использует ключевое слово IDENTITY для выполнения задачи auto-increment.

По умолчанию, начальное значение IDENTITY составляет 1, и каждый новый записывается увеличивается на 1.

Чтобы определить, что столбец "P_Id" будет начинаться с 20 и увеличиваться на 10, измените identity на IDENTITY(20,10):

Чтобы вставить новую запись в таблицу "Persons", нам не нужно определять значение для столбца "P_Id" (будет автоматически добавлено уникальное значение):

INSERT INTO Persons (FirstName, LastName)
VALUES ('Bill', 'Gates')

Следующий SQL-запрос вставит новую запись в таблицу "Persons". Значение "P_Id" будет присвоено уникальному значению. Поле "FirstName" будет установлено в "Bill", поле "LastName" будет установлено в "Gates".

Синтаксис для Access

Следующие SQL-запросы определяют столбец "P_Id" в таблице "Persons" как auto-increment PRIMARY KEY:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS Access использует ключевое слово AUTOINCREMENT для выполнения задачи auto-increment.

По умолчанию, начальное значение AUTOINCREMENT составляет 1, и каждый новый записывается увеличивается на 1.

Чтобы определить, что столбец "P_Id" будет начинаться с 20 и увеличиваться на 10, измените autoincrement на AUTOINCREMENT(20,10):

Чтобы вставить новую запись в таблицу "Persons", нам не нужно определять значение для столбца "P_Id" (будет автоматически добавлено уникальное значение):

INSERT INTO Persons (FirstName, LastName)
VALUES ('Bill', 'Gates')

Следующий SQL-запрос вставит новую запись в таблицу "Persons". Значение "P_Id" будет присвоено уникальному значению. Поле "FirstName" будет установлено в "Bill", поле "LastName" будет установлено в "Gates".

Грамматика для Oracle

В Oracle код несколько сложнее.

Вы должны использовать объект последовательности для создания auto-increment поля (объект генерирует числовую последовательность).

Используйте следующую грамматику CREATE SEQUENCE:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

Следующий код создает объект последовательности seq_person с именем, начинающийся с 1 и увеличивающийся на 1. Этот объект кэширует 10 значений для повышения производительности. Опция CACHE определяет, сколько значений последовательности следует хранить для повышения скорости доступа.

Чтобы вставить новую запись в таблицу "Persons",我们必须 использовать функцию nextval (функция берет следующий номер из последовательности seq_person):

INSERT INTO Persons (P_Id, FirstName, LastName)
VALUES (seq_person.nextval, 'Lars', 'Monsen')

Следующий SQL-запрос вставит новую запись в таблицу "Persons". Значение "P_Id" будет получено из следующего числа из последовательности seq_person. Поле "FirstName" будет установлено в "Bill", поле "LastName" будет установлено в "Gates".

  • Предыдущая страница SQL Alter
  • Следующая страница SQL View