SQL: обходной путь без функции идентификации с использованием триггеров
Я немного устал от своих триггеров, а что нет, и пытаюсь выяснить эту проблему для класса:
В тесте базы данных для таблиц не предусмотрена функция IDENTITY. Другими словами, когда мы вставляем строку в таблицу "Пользователи", мы бы хотели, чтобы первичный ключ "Идентификатор пользователя" автоматически увеличивался. Пожалуйста, предложите обходной путь для реализации этой функции без такой встроенной функциональности. (Совет: вы все еще можете использовать функции, хранимые процедуры, последовательности, триггеры и т. Д.)
2 ответа
Используйте столбец Int для таблицы Primary Key с именем ID.
Затем можно использовать вместо триггера вставки, чтобы заполнить / вычислить значение, которое будет вставлено для идентификатора.
Триггер определит максимальный существующий идентификатор для рассматриваемой таблицы (используя выбор MAX ID из таблицы A), а затем увеличит его на 1 для каждой вставляемой записи.
Если в таблице нет записей, то значение идентификатора равно 1.
Вы используете последовательность, и она очень распространена в Oracle, которая не имеет (или даже не изменила) столбцов идентификации. Поскольку это домашнее задание, я позволю вам выяснить остальное отсюда.