powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Удаление строк и восстановление последовательности
6 сообщений из 6, страница 1 из 1
Удаление строк и восстановление последовательности
    #39390338
Сергей_00001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
подскажите пожалуйста, есть к примеру таблица

nameq_noвася1петя2коля3света4настя5оля6маша7

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

nameq_noвася1петя2света4оля6маша7

и соответственно последовательность сломалась: 1,2,4,6,7, а нужно после удаления вернуть и сделать:
nameq_noвася1петя2света3оля4маша5

как это сделать?
...
Рейтинг: 0 / 0
Удаление строк и восстановление последовательности
    #39390342
Сергей_00001,

Merge + row_number
...
Рейтинг: 0 / 0
Удаление строк и восстановление последовательности
    #39390348
Сергей_00001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно поподробнее? имена стоят в определенном порядке и не по алфавиту, соответственно отсортировать их и пронумеровать заново нельзя
...
Рейтинг: 0 / 0
Удаление строк и восстановление последовательности
    #39390387
Сергей_00001имена стоят в определенном порядке и не по алфавиту, соответственно отсортировать их и пронумеровать заново нельзяопределенный порядок же чем-то задается? Вот и сортируй и перенумеровывай в соответствии с этим определением порядка. Далее пихаешь все в merge и обновляешься значение поля-нумератора
...
Рейтинг: 0 / 0
Удаление строк и восстановление последовательности
    #39390393
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_00001,

Что именно в этом запросе сложно для твоего понимания?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
merge into tbl dst
 using (select *
          from (select rowid row_id,
                       q_no,
                       row_number() over (order by q_no) new_q_no
                  from tbl)
         where q_no <> new_q_no) src
    on (dst.rowid = src.row_id)
when matched
then
   update set dst.q_no   = src.new_q_no
...
Рейтинг: 0 / 0
Удаление строк и восстановление последовательности
    #39390436
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopЧто именно в этом запросе сложно для твоего понимания?


Ну я бы соптимизировал. Сохраняем наимeньший удaленный ID и в MERGE source выбираем > eго.

SY.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Удаление строк и восстановление последовательности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]