SQL: обходной путь без функции идентификации с использованием триггеров - PullRequest
1 голос
/ 29 мая 2009

Я немного устал от своих триггеров, а что нет, и пытаюсь выяснить эту проблему для класса:

В тесте базы данных для таблиц не предусмотрена функция IDENTITY. Другими словами, когда мы вставляем строку в таблицу «Пользователи», мы хотим, чтобы первичный ключ «Идентификатор пользователя» автоматически увеличивался. Пожалуйста, предложите обходной путь для реализации этой функции без такой встроенной функциональности. (Совет: вы все еще можете использовать функции, хранимые процедуры, последовательности, триггеры и т. Д.)

Ответы [ 2 ]

1 голос
/ 29 мая 2009

Используйте столбец Int для таблицы Первичный ключ с именем ID.

Затем можно использовать вместо триггера вставки, чтобы заполнить / вычислить значение, которое будет вставлено для идентификатора.

Триггер будет определять максимальный существующий идентификатор для рассматриваемой таблицы (используя выбор MAX ID из таблицы A), а затем увеличивать его на 1 для каждой вставляемой записи.

Если в таблице нет записей, то значение идентификатора равно 1.

0 голосов
/ 29 мая 2009

Вы используете последовательность, и она очень распространена в Oracle, которая не имеет (или не изменяла один раз) столбцы идентификаторов. Так как это домашнее задание, я позволю вам выяснить остальное отсюда.

...