Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Рекурсия + временные таблицы
|
|||
|---|---|---|---|
|
#18+
J-Pro ... Согласен, так же, как у меня, только намного рациональнее. Но результат тот же самый - дебагером всё проходит отлично, из цикла выходит, но ни одной записи из таблиц не удаляется. Бррр, стоп. Это в дебагере не удаляется, а если вызвать ф-цию - всё удаляется. Только почему-то больше, чем надо :)) Щас буду разбираться, спасибо за помощь большое. Хоть какой-то сдвиг. ак разберусь - напишу окончательный результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 13:46 |
|
||
|
Рекурсия + временные таблицы
|
|||
|---|---|---|---|
|
#18+
Всё отлично работает. CASCADE решил многие проблемы. Спасибо огромное всем, кто помог. Я узнал много нового, к тому же решил поставленную задачу. Большое человеческое спасибо! Окончательный результат ф-ции: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Ещё раз огромная благодарность всем, кто учавствовал в этой теме. Вы оень мне помогли, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 14:26 |
|
||
|
Рекурсия + временные таблицы
|
|||
|---|---|---|---|
|
#18+
1/ рад, что всё у вас получилось. несколько комментариев пост факк тум J-Pro 4321извините, фсё переврал (смешались в кучу кони, люди) - поправляюсь. видимо так (логику уж проверьте сами): .... Как я понял, фффф создаёт "поRECORDный" триггер, который выполняется уже ПОСЛЕ удаления. Отсюда первый вопрос: каскад уже сработает к моменту вызова триггера? Т.е. когда вызовется триггер, в таблице ассоциаций тасков уже не будет тех записей, в которых присутствовал удалённый таск? Иными словами, мы никак не узнаем информацию о детях и родителях этого удалённого таска?я кажецца несколько раз повторил, что триггер вешаете на табличку "таскСССС", т.е. табличку линков (см триннер в моей "поправке"). А он вызовется на любом удалении, будь то вызвано руками, буд - каскадом. Т.е. ваша посылка неверна. J-Pro Второй момент: писать триггер - всё равно, что писать хранимую процедуру. В том плане, что триггер нужен больше для того, если я работаю на уровне обычных SQL-запросов. Я же вызываю одни хранимые процедуры, у меня нет ни одного вызова простого запроса..все зависит от видимости таблиц снаружи (и из других процедур). Т.е. по триггеру вы 100% защищены от разрушения логической цельности (если триггер не врет, конечно). В процедуре - если озаботитесь, чтобы мимо процедур никто не ходил. В т.ч. вы сами и ваш код. Но позаписные триггера как показали некие тесты обычно много медленнее (на больших объемах) чем хранимки с лупом по тому же набору (и теми же инструкциями внутре цикла). (почему - идей нет). еще раз праздравляю с пабедай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 14:41 |
|
||
|
Рекурсия + временные таблицы
|
|||
|---|---|---|---|
|
#18+
43211/ рад, что всё у вас получилось. несколько комментариев пост факк тум J-Pro ... Как я понял, фффф создаёт "поRECORDный" триггер, который выполняется уже ПОСЛЕ удаления. Отсюда первый вопрос: каскад уже сработает к моменту вызова триггера? Т.е. когда вызовется триггер, в таблице ассоциаций тасков уже не будет тех записей, в которых присутствовал удалённый таск? Иными словами, мы никак не узнаем информацию о детях и родителях этого удалённого таска?я кажецца несколько раз повторил, что триггер вешаете на табличку "таскСССС", т.е. табличку линков (см триннер в моей "поправке"). А он вызовется на любом удалении, будь то вызвано руками, буд - каскадом. Т.е. ваша посылка неверна. Ага, теперь понял. Я действительно думал, что триггер целяется в таблицу Tasks. Понял теперь. Да, действительно, Вы правы, оно и так будет работать, пасиб. 4321 J-Pro Второй момент: писать триггер - всё равно, что писать хранимую процедуру. В том плане, что триггер нужен больше для того, если я работаю на уровне обычных SQL-запросов. Я же вызываю одни хранимые процедуры, у меня нет ни одного вызова простого запроса..все зависит от видимости таблиц снаружи (и из других процедур). Т.е. по триггеру вы 100% защищены от разрушения логической цельности (если триггер не врет, конечно). В процедуре - если озаботитесь, чтобы мимо процедур никто не ходил. В т.ч. вы сами и ваш код. Но позаписные триггера как показали некие тесты обычно много медленнее (на больших объемах) чем хранимки с лупом по тому же набору (и теми же инструкциями внутре цикла). (почему - идей нет). Спасибо за инфу, полезно. Всё доступно обьяснено. Спасибо ещё раз! 4321еще раз праздравляю с пабедай. Пасиб, это благодаря вам всем ;) P.S.: Кстати... на бдущее, по сабжу... что если действительно когда-нибудь придётся делать рекурсивную функцию, в которой создаётся временная таблица? На втором уровне, как упоминалось выше, сервак выругается и скажет, что подобная таблица уже существует. Как быть? Есть альтернативы? Допустим, создавать временные таблицы, видимые только на уровне одной ф-ции? Как-то можно такое осуществить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 14:50 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33692042&tid=2006447]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 370ms |

| 0 / 0 |
