В СУБД MySQL есть возможность использовать свойство auto_increment для числового поля — оно автоматически добавляет единицу числовому полю для следующей строки при вставке. Таким образом система самостоятельно генерирует уникальный идентификатор для записи. В Oracle данную функциональность можно реализовать при помощи триггера (ранее версии 12с) или свойства IDENTITY (с версии 12c).
В данном примере, наша таблица будет называться ai_table , а поле, которому необходимо добавить возможность auto_increment — id .
Создаем последовательность следующей SQL-командой:
CREATE SEQUENCE sq_ai_table
START WITH 1
INCREMENT BY 1
NOMAXVALUE;
* в данном примере создана последовательность с названием sq_ai_table . Начинается последовательность с 1 и каждый шаг будет добавлять тоже 1 .
Теперь создаем сам триггер:
CREATE OR REPLACE TRIGGER tr_ai_table before INSERT ON ai_table FOR each row
BEGIN
SELECT sq_ai_table.NEXTVAL
INTO :new.id
FROM dual;
END;
* как видим, создан триггер с названием tr_ai_table для таблицы ai_table . При каждой INSERT команде будет браться число из нашей созданной последовательности и подставляться в поле id .
Начиная с версии Oracle 12c есть возможность создать таблицу со свойством поля IDENTITY, которое является аналогом auto increment или autonumber.
Пример создания таблицы:
CREATE TABLE ai_table
(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
name VARCHAR(512) NOT NULL,
UNIQUE (id, name)
)
* где id — поле со свойством автоинкремента с шагом 1 и начальным значением 1 .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…