В SQL, как заполнить число в последовательности в столбце без изменения структуры таблицы?

Заполнение числа в последовательности для столбца без изменения структуры таблицы - нужен запрос

1 ответ

Если вы не хотите изменять или изменять структуру таблицы базы данных, у вас есть ограниченные решения.

Первый вариант может быть использование объекта последовательности

create sequence mySequence increment by 1;

После того, как у вас есть объект последовательности, вы можете читать из этой последовательности всякий раз, когда вам нужно это значение поля

select mySequence.nextval from dummy;

К сожалению, каждое чтение будет увеличивать текущее значение последовательности. Это означает, что если вы прочитали, но не вставили значение в таблицу, в следующий раз при вставке новой строки в столбце таблицы будет пробел. Или, если вы вставляете две строки из двух разных исполнений, одна может сначала прочитать последовательность, но вставить значение позже, чем другой поток; тогда последовательность будет как 11,12,14,13, 15

Второй вариант - создание триггера таблицы базы данных AFTER INSERT. Затем вы можете получить максимальное значение из столбца таблицы (или можете сохранить в отдельной таблице) или из последовательности и обновить поле столбца этими данными последовательности

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