powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема множественной вставки в несколько таблиц и создания ключа
8 сообщений из 8, страница 1 из 1
Проблема множественной вставки в несколько таблиц и создания ключа
    #39406055
PaxExterminatus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
INSERT ALL
  WHEN FLAG_CREATE_STREAM = 1 THEN
  INTO EMSG_STREAM VALUES (EMSG_STREAM_SEQ.NEXTVAL, EMSG_CAUSE, NULL, CLIENT_ID)
  WHEN FLAG_CREATE_STREAM > 0 THEN
  INTO EMSG VALUES (EMSG_STREAM_SEQ.CURRVAL, EMSG_SEQ.NEXTVAL, EMSG_TYPE, EMSG_TYPE_SUB, EMSG_DATE, EMSG_ADDRESS, EMSG_BODY, EMSG_STATUS)

SELECT...



ORA-02291: integrity constraint (FK_EMSG_STREAM) violated - parent key not found

Можно ли как-то решить эту проблему малой кровью?
...
Рейтинг: 0 / 0
Проблема множественной вставки в несколько таблиц и создания ключа
    #39406057
PaxExterminatus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алгоритм примерно такой,

для каждого первого EMSG создать STREAM, для последующих использовать ранее созданный STREAM
...
Рейтинг: 0 / 0
Проблема множественной вставки в несколько таблиц и создания ключа
    #39406069
PaxExterminatus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается что запрос создает вот это:
EMSG_STREAM STREAM_CAUSE USER_ID CLIENT_ID50 1 (null) 1339023

EMSG_STREAM EMSG EMSG_TYPE50 37896151 37897 2
...
Рейтинг: 0 / 0
Проблема множественной вставки в несколько таблиц и создания ключа
    #39406075
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Счётчик инкрементируется для каждой строки запроса . Так они работают. И это задокументировано.
...
Рейтинг: 0 / 0
Проблема множественной вставки в несколько таблиц и создания ключа
    #39406100
PaxExterminatus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
, SEQ AS ( 

SELECT
  msg.EMSG_TYPE,
  msg.CLIENT_ID,
  ROW_NUMBER() OVER (PARTITION BY msg.CLIENT_ID ORDER BY msg.CLIENT_ID, msg.EMSG_TYPE) GRNUM
FROM 
  MSG_LIST msg,
  CLIENT_PROPERTY cp
WHERE msg.CLIENT_ID = cp.CLIENT_ID
)


SELECT 
  CLIENT_ID,
  GRNUM,
  CASE WHEN GRNUM = 1 THEN EMSG_STREAM_SEQ.NEXTVAL
       ELSE EMSG_STREAM_SEQ.NEXTVAL - GRNUM + 1
  END AS SSS
  
FROM SEQ
...
Рейтинг: 0 / 0
Проблема множественной вставки в несколько таблиц и создания ключа
    #39406112
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaxExterminatus, поток сознания лучше переместить в другое место
...
Рейтинг: 0 / 0
Проблема множественной вставки в несколько таблиц и создания ключа
    #39406129
PaxExterminatus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, зато работает, а вам советую негатив в другое место переместить
...
Рейтинг: 0 / 0
Проблема множественной вставки в несколько таблиц и создания ключа
    #39406165
хунтер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaxExterminatusElic, зато работает, а вам советую негатив в другое место переместить

До поры до времени.
Приходите еще и расскажете нам в каком месте еще что то поламалось,
нам будет очень интересно :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема множественной вставки в несколько таблиц и создания ключа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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