Дополнительно
Как создать идентификатор типа AUTO_INCREMENT на Oracle?
Похоже, что нет понятия типа AUTO_INCREMENT в Oracle, вплоть до версии 11G.
Как я могу создать столбец, который ведет себя как автоинкремент в Oracle 11г?
387
16
Нет такого понятия как " типа AUTO_INCREMENT и"; или "личность" и столбцов в Oracle в Оракл 11г. Однако, вы можете легко моделировать именно такую последовательность и триггер:
Определение таблицы:
Определение триггера:
Обновление###:
["Личность"] столбец1 теперь доступен в Oracle 12С:
или укажите начальную и приращение ценностей, а также предотвращать любые вставить в столбец идентификаторов (
генерируется всегда
) (опять же, Оракл 12С+ только)Кроме того, в Oracle 12 также позволяет использовать последовательность как значение по умолчанию:
SYS_GUID
возвращает идентификатор GUID-уникальный идентификатор. АSYS_GUID
- это сырые(16)`. Он не создает увеличивающееся числовое значение.Если вы хотите создать инкрементный цифровой ключ, вы'll хочу создать последовательность.
Затем вы должны использовать эту последовательность в своем "вставить" заявление
Или вы можете определить триггер, который автоматически заполняется значением первичного ключа, используя последовательность
Если вы используете Oracle 11.1 или более поздней версии, вы можете упростить триггер немного
Если вы действительно хотите использовать
SYS_GUID
В Oracle 12С вперед вы могли бы сделать что-то вроде:
И в Oracle (до 12С).
Здесь представлены тремя вкусами:
"X" - это столбец идентификаторов. Заменить
Фу
с вашим именем таблицы в каждом из примеров.обновление:
В Oracle 12С вводит этих двух вариантов, что Дон'т зависеть от триггеров:
Первый использует последовательность традиционным способом; второй управляет значением внутренне.
Предполагая, что вы имеете в виду столбец как столбец идентификаторов SQL-сервера?
В Oracle, вы можете использовать последовательность для достижения той же функциональности. Я'll увидеть, если я могу найти хорошую ссылку и разместить его здесь.
Обновление: похоже, вы нашли его сами. Здесь ссылка: http://www.techonthenet.com/oracle/sequences.php
Базы данных Oracle 12c введено идентичности, авто-инкрементного (созданные системой) столбец. В предыдущей версии базы данных (до 11г), вы, как правило, реализовать личность, создавая последовательность и триггер. Из 12С вперед, вы можете создать свою собственную таблицу и определить столбец, который должен быть сформирован как личность.
Следующая статья объясняет, как использовать его:
Столбцов Identity - новая запись в базе данных Oracle 12С
Начиная с Oracle 12С есть поддержка для столбцов идентификаторов в одном из двух способов:
Создать таблицы mytable (Идентификационный номер MyTable_Seq по умолчанию.NEXTVAL, ...)
Создать таблицу mytable (идентификационный номер генерируются как личность, ...)
Если вы используете первый способ, это обратная совместимость с существующими способ делать вещи. Второй-немного более простой и более inline с остальной частью системы СУРД там.
Триггер
ипоследовательность
может быть использован, когда вы хотите сериализовать количество, что любой человек может легко прочитать/вспомнить/понять. Но если вы Don'т хотите управлять столбце код (например, код emp_id) таким образом, и значение этого столбца не очень значительный, вы можете использовать `SYS_GUID () на создание таблицы, чтобы получить автоинкремент такой.Теперь ваш
столбец emp_id
примет на "Глобальный уникальный идентификатор значение и". вы можете вставить значение в таблицу, игнорируя столбец emp_id такой.Так, он будет вставлять уникальное значение в столбец emp_id`.
это называется
столбцов Identity
и это доступно только из Oracle в Oracle 12Спример вставить в Столбцы идентификаторов как ниже
вы не можете делать вставки, как показано ниже
полезные ссылки
Вот полное решение Вт.Р.Т транспортная обработка исключений/ошибок для авто инкремент, это решение имеет обратную совместимость и совместимость по 11г & 12С, в частности, если приложение находится в производстве.
Пожалуйста, замените 'ИМЯ_ТАБЛИЦЫ' с вашим соответствующей таблице имя
Это, как я сделал это на существующую таблицу и столбец (с именем ID):
только я должен просто изменить имя таблицы (AUDITLOGS) с вашим именем таблицы и новые.удостоверение личности с новой.имя_столбца
Oracle имеет последовательности и столбцов идентификаторов в 12С
http://www.oracle-base.com/articles/12c/identity-columns-in-oracle-12cr1.php#identity-columns
Я нашел это, но не уверен, что РДБ 7 является http://www.oracle.com/technetwork/products/rdb/0307-identity-columns-128126.pdf
Может просто попробовать этот простой скрипт:
http://www.hlavaj.sk/ai.php
Результат: