Меню
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON PHP КАК
     ❯   

SQL Учебник


SQL БАЗА ДАННЫХ


SQL Справочник


SQL Примеры



SQL AUTO INCREMENT



Первичный ключ AUTO INCREMENT

AUTO INCREMENT позволяет автоматически генерировать уникальное число при вставке новой записи в таблицу.

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


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

Следующая инструкция SQL определяет, что столбец "Personid", который должен быть полем первичного ключа с автоматическим приращением в поле первичного ключа в таблице "Persons":

CREATE TABLE Persons (
    Personid int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (Personid)
);

MySQL использует ключевое слово AUTO_INCREMENT для выполнения функции автоматического приращения.

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

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

ALTER TABLE Persons AUTO_INCREMENT=100;

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

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

Приведенная выше инструкция SQL вставит новую запись в таблицу "Persons". Столбцу "Personid" будет присваивается уникальное значение. Столбец "FirstName" будет иметь значение "Lars", а столбец "LastName"- "Monsen".


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

Следующая инструкция SQL определяет столбец "Personid" как поле первичного ключа автоинкремента в таблице "Persons":

CREATE TABLE Persons (
    Personid int IDENTITY(1,1) PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

MS SQL Server использует ключевое слово IDENTITY для выполнения функции автоматического приращения.

В приведенном выше примере начальное значение идентификатора равно 1, и оно будет увеличиваться на 1 для каждой новой записи.

Совет: Чтобы указать, что столбец "Personid" должен начинаться со значения 10 и увеличиваться на 5, измените его на IDENTITY(10,5).

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

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

Приведенная выше инструкция SQL вставит новую запись в таблицу" Persons". Столбцу "Personid" будет присвоено уникальное значение. Столбец "FirstName" будет иметь значение "Lars", а столбец "LastName"- "Monsen".



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

Следующая инструкция SQL определяет столбец "Personid" как поле первичного ключа автоинкремента в таблице "Persons":

CREATE TABLE Persons (
    Personid AUTOINCREMENT PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

MS Access использует ключевое слово AUTOINCREMENT для выполнения функции автоматического приращения.

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

Совет: Чтобы указать, что столбец "Personid" должен начинаться со значения 10 и увеличиваться на 5, измените значение autoincrement на AUTOINCREMENT(10,5).

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

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

Приведенная выше инструкция SQL вставит новую запись в таблицу "Persons". Столбцу "Personid" будет присвоено уникальное значение. Столбец "FirstName" будет иметь значение "Lars", а столбец "LastName" - "Monsen".


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

В Oracle код немного сложнее.

Вам нужно будет создать поле автоинкремента с объектом SEQUENCE (этот объект генерирует числовую последовательность).

Используйте следующий синтаксис 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 (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');

Приведенная выше инструкция SQL вставит новую запись в таблицу "Persons". Столбецу "Personid" будет присвоен следующий номер из последовательности "seq_person". Столбец "FirstName" будет иметь значение "Lars", а столбец "LastName"- "Monsen".



×

Связаться с отделом продаж

Если вы хотите использовать услуги schoolsw3 как образовательное учреждение, команда или предприятие, отправьте нам электронное письмо:
sales@schoolsw3.com

Сообщить об ошибке

Если вы хотите сообщить об ошибке или внести предложение, отправьте нам электронное письмо:
help@schoolsw3.com

Schoolsw3 оптимизирован для обучения и подготовки. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно проверяются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего контента.
При использовании Schoolsw3 вы соглашаетесь прочитать и принять наши условия использования,
политику использования файлов cookie и конфиденциальности.

Авторское право 1999- © Copyright. Все права защищены. Schoolsw3 работает на SW3.CSS.