У меня есть запрос на обновление данных в таблице; то есть полностью очистить все данные и обновить данные. Я заметил, что номер первичной колонки продолжает расти. Как перестроить этот столбец так, чтобы число начиналось с 1 при каждом обновлении данных.PL/SQL через APEX Обновить начальную колонку
ответ
Если вы не находитесь на 12c, считая, что ваш первичный ключ заполняется через последовательность с помощью триггера. Что вы можете сделать, это:
Создать триггер с логикой, чтобы сбросить последовательность в нормальное состояние, т.е. после того, как каждый раз, когда вы очистить таблицу, то последовательность будет НАЧАТЬ С 1 и Инкримент 1. используя ALTER SEQUENCE.
Логическая часть последовательности, используя альтер заявление (спасибо Тому Кайта для этого):
create or replace procedure reset_sequence(p_seq in varchar2) is l_value number; begin -- Select the next value of the sequence execute immediate 'select ' || p_seq || '.nextval from dual' INTO l_value; -- Set a negative increment for the sequence, -- with value = the current value of the sequence execute immediate 'alter sequence ' || p_seq || ' increment by -' || l_value || ' minvalue 0'; -- Select once from the sequence, to -- take its current value back to 0 execute immediate 'select ' || p_seq || '.nextval from dual' INTO l_value; -- Set the increment back to 1 execute immediate 'alter sequence ' || p_seq || ' increment by 1 minvalue 0'; end; /
Это просто, чтобы ответить на ваш вопрос. Однако, IMHO, я бы никогда не хотел этого делать в любой производственной системе.
Я видел еще один альтернативой, которая заключается в падении и воссоздании последовательности. Поскольку моя программа не зависит от основного ключа, я могу позволить себе этот метод. Благодарю. Я продолжу изучение этой процедуры, чтобы настроить мою программу для последующего использования. – Contactjohn
Хорошо, спасибо за отзыв. –
- 1. Обновление Apex Табличная форма с PLSQL
- 2. Обновить колонку
- 3. Обновить начальную активность?
- 4. Как обновить APEX 4.2.0 до APEX 5.0.3?
- 5. Обновить колонку +1
- 6. Обновить колонку NCLOB Issue
- 7. Обновить колонку после проверки
- 8. Обновить колонку синтаксиса
- 9. Обновить колонку NText
- 10. Обмен через код APEX
- 11. JPA/Hibernate - Как обновить ограниченную колонку объекта через слияние
- 12. Обновить колонку для многих записей
- 13. Postgres добавить колонку и обновить
- 14. Обновить колонку paratitioned другой колонке
- 15. Как обновить колонку в Cassandra
- 16. Обновить колонку, используя спящий режим
- 17. Обновить целую колонку вместо строки
- 18. Обновить колонку для всех строк
- 19. AVAudioPlayer через колонку
- 20. Ассоциация через нестандартную колонку?
- 21. Регион Oracle Apex на основе PLSQL и HTML
- 22. Oracle Tab APEX 4.2 Табличные данные формы - PLSQL
- 23. Обработка динамических значений в Oracle Apex от PLSQL
- 24. Отправить запрос POST для процедуры Oracle APEX или PLSQL
- 25. Запустить файл proc через plsql
- 26. Курс plsql через прямой sql
- 27. Обновить начальную позицию MediaPlayer при приостановке
- 28. Apex - Интерактивный отчет - Скрыть колонку в CSV Загрузить?
- 29. PLSQL Merge - обновить, пока строка не существует
- 30. Как обновить эту функцию в PLSQL?
Как объявляется первичный столбец? Какой код вы используете для очистки и обновления данных? Есть ли триггеры? Последовательности? – Ben
Если вы хотите сбросить последовательность, это дубликат [Необходимость сбросить значение последовательности в Oracle] (http://stackoverflow.com/q/10159840/458741). – Ben
Спасибо, Бен. Изучение этой альтернативы. – Contactjohn