|
Очередность удаления из таблиц, связанных FOREIGN KEY
|
|||
---|---|---|---|
#18+
Есть такая проблема. Имеются в наличии таблицы справочников, ну пусть Код: sql 1. 2. 3. 4.
Для каждого справочника есть таблицы с переводами значений NAME на 2 языка. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Также имеется таблица логирования операций. куда при помощи триггеров валятся операции удаления данных. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Триггера подвешены на таблицы справочников и таблицы переводов. Триггера - AFTER DELETE. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Дальше удаляю данные при помощи Код: sql 1. 2.
Делаю select из таблицы логирования, и почему-то первыми идут в таблице логирования записи об удалении из таблиц справочников. Потом из таблиц переводов. Насколько я понимаю, так быть не должно, ведь при таком типе внешнего ключа должны удаляться сначала данные из таблиц справочников? Подскажите плиз, порядок выведения записей в таблице логирования важен правильный. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2016, 10:17 |
|
Очередность удаления из таблиц, связанных FOREIGN KEY
|
|||
---|---|---|---|
#18+
Александр Тарасенко, Почему не должно быть удаления "сверху-вниз" по иерархии ссылок? По-моему это как-раз логично - начать (в рамках транзакции) с единственного родительского узла. Дочерних узлов м.б. сколь угодно много со своими иерархиями. И с какого из них начинать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2016, 12:45 |
|
Очередность удаления из таблиц, связанных FOREIGN KEY
|
|||
---|---|---|---|
#18+
т.е. удаление идет с родительского узла и "спускается" по иерархии по всем дочерним уровням. Если на каком-то из этих уровней возникает невозможность удаления какого-то промежуточного узла, то транзакция откатывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2016, 12:49 |
|
|
start [/forum/topic.php?fid=43&fpage=13&tid=1600589]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 309ms |
total: | 448ms |
0 / 0 |