В SQL, как заполнить число в последовательности в столбце без изменения структуры таблицы?
Заполнение числа в последовательности для столбца без изменения структуры таблицы - нужен запрос
1 ответ
Если вы не хотите изменять или изменять структуру таблицы базы данных, у вас есть ограниченные решения.
Первый вариант может быть использование объекта последовательности
create sequence mySequence increment by 1;
После того, как у вас есть объект последовательности, вы можете читать из этой последовательности всякий раз, когда вам нужно это значение поля
select mySequence.nextval from dummy;
К сожалению, каждое чтение будет увеличивать текущее значение последовательности. Это означает, что если вы прочитали, но не вставили значение в таблицу, в следующий раз при вставке новой строки в столбце таблицы будет пробел. Или, если вы вставляете две строки из двух разных исполнений, одна может сначала прочитать последовательность, но вставить значение позже, чем другой поток; тогда последовательность будет как 11,12,14,13, 15
Второй вариант - создание триггера таблицы базы данных AFTER INSERT. Затем вы можете получить максимальное значение из столбца таблицы (или можете сохранить в отдельной таблице) или из последовательности и обновить поле столбца этими данными последовательности