|
Автоинкрементное поле для заполненной таблицы
|
|||
---|---|---|---|
#18+
Всем привет! Есть готовая таблица с 15к записями с полем c_id (отсчет идет со 152), туда необходимо добавить автоинкрементное поле id. При этом каждой записи, начиная со 152, присвоить числовое Соответствующее значение — c_id = 152 и id = 152 итд. Однако в таблице есть записи без значения c_id, то есть null, их тоже необходимо заполнить id без потери порядка. Понимаю, что нужно скорее всего использовать merge и сортировку по c_id, но не понимаю как добавить такое автоинкрементное поле и пронумеровать со 152 уже имеющиеся записи ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2022, 18:07 |
|
Автоинкрементное поле для заполненной таблицы
|
|||
---|---|---|---|
#18+
Mildb, у Вас автоинкрементное поле, или ид будет генерится в триггере? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2022, 19:59 |
|
Автоинкрементное поле для заполненной таблицы
|
|||
---|---|---|---|
#18+
Пронумеровать по любому принципу - не проблема. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
А вот эти identity columns, видимо, туда-сюда менять нельзя, только новая колонка или таблица. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2022, 20:13 |
|
Автоинкрементное поле для заполненной таблицы
|
|||
---|---|---|---|
#18+
Stax, Автоинкрементное ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2022, 23:28 |
|
Автоинкрементное поле для заполненной таблицы
|
|||
---|---|---|---|
#18+
dmdmdm, А если поле задумывается как автоинкрементное, то будет ли новая запись нумероваться автоматически в дальнейшем? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2022, 23:30 |
|
Автоинкрементное поле для заполненной таблицы
|
|||
---|---|---|---|
#18+
Mildb, я б делал без мерже 1) update t set id=c_id where c_id is not null 2) update t set id=rownum+(select max(id) from t ) where id is null 3) select max(id)+1 next_id from t 4) alter table t modify id GENERATED ALWAYS as IDENTITY(START with next_id INCREMENT by 1); взято с 22437553 ps отдельная тема заполнения дырок, не расматривал .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2022, 10:07 |
|
Автоинкрементное поле для заполненной таблицы
|
|||
---|---|---|---|
#18+
А если Я теряюсь с вашей лени. Готовые команды набросал. Нет бы взять и попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2022, 12:42 |
|
Автоинкрементное поле для заполненной таблицы
|
|||
---|---|---|---|
#18+
Stax, Спасибо! значения присваиваются! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2022, 12:56 |
|
|
start [/forum/topic.php?fid=3&gotonew=1&tid=1141139]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 9819ms |
total: | 9961ms |
0 / 0 |