Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASA9, триггер на удаление меняющий PK
|
|||
|---|---|---|---|
|
#18+
Понадобилось тут нам делать автоматическую перенумерацию строк в табличке... И напоролись на симатичный глюк. Вот урезаный скрипт воспроизводящий его: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Устойчиво проявляется на ASA 9.0.2.2451 Проверьте пожалуйста на более новых ebf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 20:31 |
|
||
|
ASA9, триггер на удаление меняющий PK
|
|||
|---|---|---|---|
|
#18+
Это даже не глюк, а фича. И на последних версиях она вести себя будет так же. Единственный способ добиться нужного эффекта, это воспользоваться вот таким триггером (я так понял, нумерация id поддерживается в разрезе группировки даты): Код: plaintext 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. P.S. Хотя все таки я считаю, вообще не гоже трогать PK и уж тем более на каждое удаление пересчитывать значение PK (интересно сколько суток работал бы Ваш триггер при удалении миллиона записей, где на каждую удаляемую запись, вызывался бы апдейт всех следующих в таблице записей). Лишние не нужные нагрузки, плюс абсолютно не будет работать с репликацией, которая запрещает изменение ключа. В таких случаях лучше уж делать PK инкрементом, а d и id сделать как unique constraints, где пересчет id можно инициализировать в хранимых процедурах, а не триггерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2006, 18:40 |
|
||
|
ASA9, триггер на удаление меняющий PK
|
|||
|---|---|---|---|
|
#18+
Да вообще нельзя менять PK в таблице, тем более триггер не сможет вообще работать на ней -- вы просто не сможете найти , где какая запись. Конечно, частные случаи возможны, но в общем это -- классический случай, как не надо делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 14:50 |
|
||
|
ASA9, триггер на удаление меняющий PK
|
|||
|---|---|---|---|
|
#18+
Ну то что PK нельзя менять это вообще-то вне вопросов :) Но к сожалению не все хорошо учились в школе... Приходится потом отлавливать такие вот глюки :( ASCRUSЭто даже не глюк, а фича По моему это все таки глюк :) Во всяком случае то, как ведет себя такой триггер если на таблице нету (или другой PK) согласуется со всеми учебниками SQL, а вот наблюдаемое поведение оказалось неожиданностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 19:05 |
|
||
|
|

start [/forum/topic.php?fid=55&tid=2013100]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 397ms |

| 0 / 0 |
