
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
08.08.2007, 15:55
|
|||
|---|---|---|---|
|
|||
Запрет удаления строк из дочерней таблицы |
|||
|
#18+
Есть 2 связанные таблицы 1: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 2: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. связь от [Nodes] (1-N) [sdh_mux_settings] по node_id. FK с каскадом от родительской [Nodes] работает прекрасно. Но мне надо бы еще защитить [sdh_mux_settings] от удаления строк, иначе получается - ключ в Родительской есть, а в дочерней данных нет. ----------------------- Как запретить удаление из дочерней таблицы. чтобы удаление напрямую было невозможно, а только через каскад из Родительской? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2007, 16:06
|
|||
|---|---|---|---|
|
|||
Запрет удаления строк из дочерней таблицы |
|||
|
#18+
dreel Как запретить удаление из дочерней таблицы. чтобы удаление напрямую было невозможно, а только через каскад из Родительской? Может не давать прав на удаление пользователю? ( REVOKE DELETE ON таблица FROM user ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2007, 16:25
|
|||
|---|---|---|---|
|
|||
Запрет удаления строк из дочерней таблицы |
|||
|
#18+
dreelКак запретить удаление из дочерней таблицы. чтобы удаление напрямую было невозможно, а только через каскад из Родительской? В триггере на after delete в дочерней сделайте проверку, что запись в родительской таблице еще есть. Если записи уже нет - значит ее delete отработал и строки дочерней удаляются по каскаду. По крайней мере, если каскадное удаление сделано в триггере на родительской таблице, это будет работать, про FK не скажу точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2007, 17:14
|
|||
|---|---|---|---|
Запрет удаления строк из дочерней таблицы |
|||
|
#18+
Сергей Васкецов В триггере на after delete в дочерней сделайте проверку, что запись в родительской таблице еще есть. Если записи уже нет - значит ее delete отработал и строки дочерней удаляются по каскаду. По крайней мере, если каскадное удаление сделано в триггере на родительской таблице, это будет работать, про FK не скажу точно. стало интересно, попробовал - работает на ура и с FK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2007, 17:24
|
|||
|---|---|---|---|
Запрет удаления строк из дочерней таблицы |
|||
|
#18+
>иначе получается - ключ в Родительской есть, а в дочерней данных нет. Т.е. в общем случае отбирать права удаления нельзя, а нужно проверять в что-то типа Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2007, 08:55
|
|||
|---|---|---|---|
|
|||
Запрет удаления строк из дочерней таблицы |
|||
|
#18+
Да. Точно! Вы меня превосходно поняли! Я сомневался, что с FK будет работать и даже не попробовал.... Спасибо - буду делать. p/s/ - вкурил )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1544361]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 439ms |

| 0 / 0 |
