Найдено 9 результатов

lexas
28 дек 2007, 22:28
Форум: Репликация
Тема: Обход FK UQ констрейнтов при репликации
Ответы: 16
Просмотры: 17013

:-p)

У меня так не получится. Трехзвенка. К БД только SYSDBA. На самом деле это не принципиально. Через current_user, get_context, или current_transaction и таблицу. Суть в том, что FK на триггерах не очень надежно.
lexas
28 дек 2007, 19:54
Форум: Репликация
Тема: Обход FK UQ констрейнтов при репликации
Ответы: 16
Просмотры: 17013

FK на триггерах работать не будет. По-любому.
Будут, но плохенько (ну или не будут.. смотря какие требования к целостности).

RDB$GET_CONTEXT - получать флаг, что в данной транзакции триггера не проверять. т.е. в триггере код типа этого.

if (RDB$GET_CONTEXT('rpl') = true) then
Exit;
lexas
28 дек 2007, 19:35
Форум: Репликация
Тема: Обход FK UQ констрейнтов при репликации
Ответы: 16
Просмотры: 17013

Навеяно upsert-ом

Как вариант делать интеллектуальный вставщик, который delete/insert превратит в update.
Если не считать изменение PK и CASCADE UPDATE злом, то замена insert/delete может и покатит. Только все констрейнты на этот PK должны быть каскадными.
lexas
28 дек 2007, 19:17
Форум: Репликация
Тема: Обход FK UQ констрейнтов при репликации
Ответы: 16
Просмотры: 17013

Не просто

С порядком сложно. В общем случае для записи, которую вставляли/меняли на мастере необходимо сохранять не только PK изменившихся записей, но и "промежуточные" (которые были между апдейтами) данные полей входящих в UQ, FK. А тут тогда возникают вопросы (которые быть может алгоритмически проще, но тех...
lexas
28 дек 2007, 18:04
Форум: Репликация
Тема: Обход FK UQ констрейнтов при репликации
Ответы: 16
Просмотры: 17013

А если поля, которые формируют FK (которые надо на 0 отправить), входят в свою очередь в состав своего UQ ? При таком перенаправлении будут те UQ ругаться. Или это уже хаос? у меня сейчас следующий алгоритм: сначала вставляем/обновляем строки в порядке от мастер таблиц к детейлам. Потому удаляем зап...
lexas
28 дек 2007, 17:27
Форум: Репликация
Тема: Обход FK UQ констрейнтов при репликации
Ответы: 16
Просмотры: 17013

удаляем в обратном. А двухпроходной это как?
lexas
28 дек 2007, 15:22
Форум: Репликация
Тема: Обход FK UQ констрейнтов при репликации
Ответы: 16
Просмотры: 17013

На таблицы разбиты

Понятное дело. Другое дело, что возникают тонкости. Если в одной таблице добавляют и удаляют строчку с одинаковыми значениями UQ и разными PK, то в репликационном пакете в таком случае едет информация об удалении по PK и добавлении с новым UQ. Сейчас добавление идёт вперед удаления - возникает наруш...
lexas
27 дек 2007, 19:45
Форум: Репликация
Тема: Обход FK UQ констрейнтов при репликации
Ответы: 16
Просмотры: 17013

Обход FK UQ констрейнтов при репликации

Как обходят ограничения накладываемые FK UQ констрейнтами, существующими в базе-приемнике, при применении репликационного пакета, который не содержит порядка вставки/удаления/изменений записей, а содержит исключительно список записей, которые добавились, изменились, удалились?
lexas
06 май 2005, 19:43
Форум: Баги и падения сервера
Тема: lock conversion denied (215) или lock denied (216)
Ответы: 177
Просмотры: 131852

у нас тоже встречается

используем трехзвенку (java-fb). При использовании jaybird 1.5.0 вылезало. org.firebirdsql.jdbc.FBSQLException: GDS Exception 335544336. deadlock page 142458, page type 5 lock conversion denied было залечено драйвером, но его происхождение мне неизвестно (толи skidder помог, толи ещё где) при исполь...