Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / merge into check integrity / 10 сообщений из 10, страница 1 из 1
19.02.2019, 08:46
    #39776017
sharkoff_new
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
Добрый день
Вставляю данные использую merge into в
иерархическую таблицу hier_table(child_id, parent_id,some_date)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
merge into <hier_table>
using
(select 2,1,some_data from dual
union all
select 3,2,some_data2  from dual) t$src
on (hier_table.child_id=t$src.child_id)
when not matched then
  insert
<bla--bla>
when matched then
update ...



при вставке срабатывает check integrity
Можно ли как то это обойти check , сказав oracle что в using данные упорядоченные как нужно или нет ничего лучше как вставлять посредством insert
...
Рейтинг: 0 / 0
19.02.2019, 09:15
    #39776022
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
sharkoff_newcheckотложи проверку fk на commit
...
Рейтинг: 0 / 0
19.02.2019, 09:55
    #39776037
sharkoff_new
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
-2-sharkoff_newcheckотложи проверку fk на commit

Похоже так и придется сделать. Спасибо!
Более других методик нет?
...
Рейтинг: 0 / 0
19.02.2019, 10:00
    #39776039
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
sharkoff_new-2-пропущено...
отложи проверку fk на commit

Похоже так и придется сделать. Спасибо!
Более других методик нет? Вставлять пустышки, потом апдейтить. Отложенное ограничение может выстрелить в другом месте, если приложение использует эти таблицы
...
Рейтинг: 0 / 0
19.02.2019, 10:17
    #39776050
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
oragrafесли приложение использует эти таблицыГлубокомысленное заявление. Приведи пример, когда возможность отложить констрейнт требует изменение кода.
...
Рейтинг: 0 / 0
19.02.2019, 11:30
    #39776094
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
-2-Приведи пример, когда возможность отложить констрейнт требует изменение кода.Да легко вообщем-то: если в приложение есть плохое место, где мы знаем что вылетают ошибки связанные с констрейнами, то перед этим местом мы можем сбросить в базу все что можно, а в критическом участке кода проигнорировать ошибку, а в случае deferred так уже нельзя сделать.
...
Рейтинг: 0 / 0
19.02.2019, 11:35
    #39776096
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
-2-,

Когда через savepointы обрабатываешь поштучно 3 часа, все пучком, потом - коммит. Но что то пошло не так где то в середине.)
...
Рейтинг: 0 / 0
19.02.2019, 12:27
    #39776117
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
oragraf-2-,

Когда через savepointы обрабатываешь поштучно 3 часа, все пучком, потом - коммит. Но что то пошло не так где то в середине.)
Код: plaintext
deferrable initially immediate 
зачем придумали? сделал в своей сессии set constraint FK_XXX deferred и вставляй , остальные ничего не заметят.
...
Рейтинг: 0 / 0
19.02.2019, 12:45
    #39776125
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
MazoHist
Код: plaintext
deferrable initially immediate 
зачем придумали? сделал в своей сессии set constraint FK_XXX deferred и вставляй , остальные ничего не заметят."код" же нужно менять, не?
...
Рейтинг: 0 / 0
19.02.2019, 13:34
    #39776152
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
merge into check integrity
Андрей Панфилов"код" же нужно менять, не?
Только свой новый. Если речь про
авторесли в приложение есть плохое место, где мы знаем что вылетают ошибки связанные с констрейнами, то перед этим местом мы можем сбросить в базу все что можно, а в критическом участке кода проигнорировать ошибку, а в случае deferred так уже нельзя сделать.
то не придется.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / merge into check integrity / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]