|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
за 10 лет впервые сломалась база: во время создания записи БД на машине упал экплорер и ОСь повисла насмерть, пришлось машину ресетнуть кнопкой. При перезапуске базы оказалось, что слетели автоинкрементые счетики на некоторых таблицах. По мере появления ошибок на нарушение уникальности FK правлю счетчики руками. Но хотелось бы проверить все разом одним запросом. Если возможно, то как? ================= Док. Win7 Ultim x64/Deb 10 (MATE; gtk2) amd64/Darwin Cocoa: FB 3.0.6.33328, Lazarus 2.1(r.63874); FPC 3.3.1 trunk ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 17:44 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
Док, одним - никак. Можно было бы сделать процедуру, в которой наворотить execute statement, вот только зачем, если генераторов обычно меньше чем таблиц, и кроме этого, на 100% установить взаимосвязь генераторов и таблиц невозможно. Бывают системы, где генераторы дёргаются исключительно из приложения. И что тогда? Короче, такая процедура если и будет работать, то меньше чем на 50% баз. p.s. 100% соответствие генератора и таблицы - это identity в ФБ 3. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 17:49 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
прибавить каждому по мильярду и дело с концом. У нас базе условились называть генераторы как ИМЯ_ТАБЛИЦЫ_ID_GEN и все ПК это поле ID, находим легко. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 18:02 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky прибавить каждому по мильярду и дело с концом. У нас базе условились называть генераторы как ИМЯ_ТАБЛИЦЫ_ID_GEN и все ПК это поле ID, находим легко. у нас скрипт создания бд препроцессится и создает генераторы с именем таблицы. и триггеры с if (NEW.ID is null) ... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 18:16 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
kdv p.s. 100% соответствие генератора и таблицы - это identity в ФБ 3. ну, мне не надо 100% соответствия. Как и "бездырочной" нумерации :) В "сломанных" генераторах я просто ручками ставлю значение последнего ID соотвествующей таблицы и все. Только делать это вручную для ВСЕХ генераторов лень, но придется, видимо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 18:22 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
Докмне не надо 100% соответствия. это не надо, при этом хотел "одним запросом". Сделай себе псевдо-системную таблицу в базе - таблица+имя_генератора. И пиши запрос на здоровье. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 20:24 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
kdv И пиши запрос на здоровье. вот, блин, помощники Хотелось халявы... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 07:33 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
"... человек, желающий трапезовать поздно вечером рискует трапезовать рано по утру" (ц) К. Прутков ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 07:35 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
Док kdv И пиши запрос на здоровье. вот, блин, помощники Хотелось халявы... Задача не универсальная, много нюансов может быть. Вот заготовка, может поможет чем: Код: 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.
Где <<получение ключа>> - процедура получения ключа. Оригинал содержит вызовы UDF, поэтому выложить не могу. Но смысл - получение первичного ключа или юника и если он не составной и целочисленный, то обновить генератор. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 08:18 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
Док Хотелось халявы... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 08:55 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky Самый халявный вариант я уже предложил выше. :) ну, это уже перебор :) Хотя, как вариант ggreggory Вот заготовка, может поможет чем Спасибо, гляну ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 11:08 |
|
Сопоставление "сломанных" счетчиков с текущим ID
|
|||
---|---|---|---|
#18+
Док, В DBComparer есть "Update Generator Values". Сопоставляет с Max(ID) соотв. таблиц. Если имена генераторов по маске... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 23:11 |
|
|
start [/forum/topic.php?fid=40&msg=40062941&tid=1560056]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 237ms |
total: | 372ms |
0 / 0 |