Официальный сайт студ.городка НГТУ
Программирование и БД » [MySQL] Триггеры - блокировка редактируемой таблицы 

#1  20.08.10 14:39

Igo
Профиль

[MySQL] Триггеры - блокировка редактируемой таблицы

при использовании в MySQL триггеров есть такая особенность - во время работы триггера блокируется таблица на которую он повешан. НО задача состоит в том, чтобы по удалению одной записи из таблицы удалялись связанные с нею  (неважно каким образом) из той же таблицы.

Решение видел только одно - в создании копии таблицы типа Merge, и совершения действий над ней (после работы триггера они синхронизуются) http://habrahabr.ru/blogs/mysql/63883/

Но тут есть свои минусы:
1. Создавать еще одну таблицу только для рабоыт триггеров - как то это через задницу.
2. Это недокументированная особенность - и ее в дальнейшем могут закрыть.

Может кто еще знает как можно решить подобную задачу?

Исправлено Igo (23.08.10 10:09)

Offline

#2  20.08.10 16:53

$up
Профиль

Re: [MySQL] Триггеры - блокировка редактируемой таблицы

Судя по всему, без отдельной таблицы всё равно не обойтись, а уже использовать её через MERGE, или просто хранить в ней Id записей помеченных на удаление (а само удаление делать по scheduled event), это как захочешь...

Исправлено $up (20.08.10 16:54)

Offline

#3  25.08.10 17:12

Igo
Профиль

Re: [MySQL] Триггеры - блокировка редактируемой таблицы

$up написал(а):

Судя по всему, без отдельной таблицы всё равно не обойтись, а уже использовать её через MERGE, или просто хранить в ней Id записей помеченных на удаление (а само удаление делать по scheduled event), это как захочешь...

Это печально... Ладно, в этот раз обошелся программной эмуляцией триггеров.

Offline

#4  25.08.10 21:26

Re: [MySQL] Триггеры - блокировка редактируемой таблицы

Я не претендую на правду, но вроде бы всю таблицу лочит MyISAM, в то время как InnoDB ограничивается строкой.
В общем курить надо в сторону оф. доки, а так хбз.

Исправлено efferson (25.08.10 21:27)

Offline

#5  26.08.10 10:02

Igo
Профиль

Re: [MySQL] Триггеры - блокировка редактируемой таблицы

efferson написал(а):

Я не претендую на правду, но вроде бы всю таблицу лочит MyISAM, в то время как InnoDB ограничивается строкой.
В общем курить надо в сторону оф. доки, а так хбз.

Хе - мне тоже эта мысль сразу в голову пришла. Я попробовал и перевел таблицу в InnoDB - и все равно результат остался тот же самый.

Offline

Программирование и БД » [MySQL] Триггеры - блокировка редактируемой таблицы 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.285 сек.
Выполнено 14 запросов.