SQL: обходной путь без функции идентификации с использованием триггеров

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

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

2 ответа

Используйте столбец Int для таблицы Primary Key с именем ID.

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

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

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

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

Другие вопросы по тегам