Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Insert одного и того же ID в обе таблицы одновременно / 14 сообщений из 14, страница 1 из 1
22.02.2018, 21:17
    #39606377
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
Помогите пожалуйста , есть 2 таблицы table1 и table2.

Столбцы в 1-ой таблице Employeer_ID

Столбцы в 2-ой таблице ID , Employeer_ID

Нужно заинсетить один и тоже sequence в обе таблицы

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.

DECLARE 
v_table1_sequence NUMBER;


BEGIN

FOR elem in 1..50

v_sequence := SEQUENCE_NAME.NEXTVAL

INSERT INTO table1  values (v_table1_sequence );

END;


FOR elem in 1..50

v_sequence := SEQUENCE_NAME.NEXTVAL

INSERT INTO table2  values (TABLE2.SEQUENCE.NEXTVAL , v_table1_sequence );

END;





В 1-ю таблицу значения инсертятся норм то есть 1,2,3,4,5 счетчик работает , а во 2-ю таблицу тот же самый счетчик инсертится одно и тоже значение , то есть во всех 50-ти строках только значение 1.

Это потому-что счетчик крутится в 1-ом цикле ,а на 2-ой не реагирует. Пытался вывести переменную v_table1_sequence за передел блока выдает ошибку.

Помогите заинсертить одно и тоже значение sequence в обе таблицы .

Заранее спасибо
...
Рейтинг: 0 / 0
22.02.2018, 21:29
    #39606381
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
не совсем правильно прописал , вот так :

DECLARE
v_table1_sequence NUMBER;


BEGIN

FOR elem in 1..50
LOOP

v_sequence := SEQUENCE_NAME.NEXTVAL

INSERT INTO table1 values (v_table1_sequence );
END LOOP;
END;


FOR elem in 1..50

LOOP

INSERT INTO table2 values (TABLE2.SEQUENCE.NEXTVAL , v_table1_sequence );

END LOOP;

END;
...
Рейтинг: 0 / 0
22.02.2018, 21:55
    #39606387
проходил мимо...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
Goofy122,

- где ошибка?
- в ДНК..

ЗЫ скоро меня тут заблокируют :(
...
Рейтинг: 0 / 0
22.02.2018, 22:54
    #39606403
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
Goofy122,

Кури Sequence Pseudocolumns

SY.
...
Рейтинг: 0 / 0
22.02.2018, 23:09
    #39606404
проходил мимо...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
SYКури Sequence Pseudocolumns
Зачем?
Ему нужно курить "два оператора в одном цикле", если, конечно, я правильно понял, чего он хочет...
...
Рейтинг: 0 / 0
22.02.2018, 23:29
    #39606412
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
проходил мимо...Зачем? Ему нужно курить "два оператора в одном цикле", если, конечно, я правильно понял, чего он хочет...


И это тоже:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
SQL> BEGIN
  2      FOR v_i in 1..3 LOOP
  3        INSERT
  4          INTO TABLE1
  5          VALUES(SEQ1.NEXTVAL);
  6        FOR v_j in 1..3 LOOP
  7          INSERT
  8            INTO TABLE2
  9            VALUES(SEQ2.NEXTVAL,SEQ1.CURRVAL);
 10        END LOOP;
 11      END LOOP;
 12  END;
 13  /

PL/SQL procedure successfully completed.

SQL> SELECT  *
  2    FROM  TABLE1
  3  /

        ID
----------
         1
         2
         3

SQL> SELECT  *
  2    FROM  TABLE2
  3  /

        ID  PARENT_ID
---------- ----------
         1          1
         2          1
         3          1
         4          2
         5          2
         6          2
         7          3
         8          3
         9          3

9 rows selected.

SQL> 



SY.
...
Рейтинг: 0 / 0
23.02.2018, 09:42
    #39606456
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
SY,

у Goofy122 независимые циклы (не вложенные)

не понятно что надо
1) сохранять ид в таблицу
2) вставлять в одном цикле

.....
stax
...
Рейтинг: 0 / 0
23.02.2018, 09:45
    #39606458
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
Goofy122,

покажите на примере что Вам надо

зы
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
BEGIN
FOR elem in 1..50 LOOP

   INSERT INTO table1  values (SEQUENCE_NAME.NEXTVAL);
   INSERT INTO table2  values (SEQUENCE_NAME2.NEXTVAL , SEQUENCE_NAME.CURRVAL );

END LOOP;

END;



.....
stax
...
Рейтинг: 0 / 0
23.02.2018, 09:49
    #39606460
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
StaxGoofy122,

покажите на примере что Вам надо
вечно ты всю интригу испортишь :)
...
Рейтинг: 0 / 0
23.02.2018, 11:57
    #39606489
jan2ary
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
Как-то так

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE TABLE T1 ( 
 ID NUMBER 
);

CREATE TABLE T2 ( 
 ID NUMBER, 
 T1_ID NUMBER 
);

CREATE SEQUENCE seq_t1;

CREATE SEQUENCE seq_t2;

INSERT ALL 
  INTO T1 ( ID ) VALUES ( seq_t1.nextval ) 
  INTO T2 ( ID, T1_ID ) VALUES ( seq_t2.nextval, seq_t1.currval ) 
SELECT *  
FROM DUAL 
CONNECT BY LEVEL <= 10 ;
...
Рейтинг: 0 / 0
23.02.2018, 14:15
    #39606542
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
StaxGoofy122,

покажите на примере что Вам надо

зы
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
BEGIN
FOR elem in 1..50 LOOP

   INSERT INTO table1  values (SEQUENCE_NAME.NEXTVAL);
   INSERT INTO table2  values (SEQUENCE_NAME2.NEXTVAL , SEQUENCE_NAME.CURRVAL );

END LOOP;

END;



.....
stax

в многопотоках может быть не то что ожидается
...
Рейтинг: 0 / 0
23.02.2018, 15:01
    #39606558
Goofy122
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
спасибо большое всем , понравился вариант с INSERT ALL
...
Рейтинг: 0 / 0
23.02.2018, 16:34
    #39606575
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert одного и того же ID в обе таблицы одновременно
artasStaxGoofy122,

покажите на примере что Вам надо

зы
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
BEGIN
FOR elem in 1..50 LOOP

   INSERT INTO table1  values (SEQUENCE_NAME.NEXTVAL);
   INSERT INTO table2  values (SEQUENCE_NAME2.NEXTVAL , SEQUENCE_NAME.CURRVAL );

END LOOP;

END;



.....
stax

в многопотоках может быть не то что ожидается

не понял, что имеется в ввиду под многопотоком ?

зы
не то что ожидается может быть и из-за напр триггера

.....
stax
...
Рейтинг: 0 / 0
01.03.2018, 16:16
    #39609175
Insert одного и того же ID в обе таблицы одновременно
мне тоже понравился с insert all
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Insert одного и того же ID в обе таблицы одновременно / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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