Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вставить дубль записи в одну и туже таблицу / 10 сообщений из 10, страница 1 из 1
30.10.2017, 13:03
    #39544363
sossisson
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
Подскажите, а как можно ставить дублем 30 раз одну и туже запись из 50 полей в одну и туже таблицу, при этом поле id надо увеличивать для каждой последующей записи?
...
Рейтинг: 0 / 0
30.10.2017, 13:13
    #39544377
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
sossisson,

Если речь идёт строго про однопользовательскую среду

Код: plsql
1.
insert into ... select id + level id, ... from ... connect by level <= 30
...
Рейтинг: 0 / 0
30.10.2017, 13:16
    #39544379
lLocust
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
envsossisson,

Если речь идёт строго про однопользовательскую среду

Код: plsql
1.
insert into ... select id + level id, ... from ... connect by level <= 30



а что мешает так?
Код: plsql
1.
insert into ... select sq.nextval id, ... from ... connect by level <= 30
...
Рейтинг: 0 / 0
30.10.2017, 13:23
    #39544390
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
lLocust,

Отсутствие информации о механизме заполнения поля id, потенциальная необходимость создавать sequence с явным стартовым значением от существующего поля id, ну и "каков вопрос, таков и ответ".
...
Рейтинг: 0 / 0
30.10.2017, 13:26
    #39544393
sossisson
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
env,

спасибо за совет. помогло.
...
Рейтинг: 0 / 0
30.10.2017, 13:31
    #39544400
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
или insert all:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
insert all 
  into t1 values(id*50+0 , a1 , b1)
  into t1 values(id*50+1 , a2 , b2)
  into t1 values(id*50+2 , a3 , b3)
  ...
  into t1 values(id*50+50, a50, b50)
select * from t2;
...
Рейтинг: 0 / 0
30.10.2017, 14:08
    #39544444
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
xtenderили insert all:Перебор :|
...
Рейтинг: 0 / 0
30.10.2017, 14:32
    #39544471
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
Не, ну раз такая пьянка, то вот и от меня вариант. Без необходимости перечислять весь набор из 50 полей.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
l_row mytable%rowtype;
begin
    select *
    into l_row
    from mytable
    where id = :p;
    
    l_row.id = 100500;
    
    for i in 1..50 loop
        insert into mytable values l_row;
        l_row.id := l_row.id + 1;
    end loop;
end;


P.S. Не отлаживал. Возможны синтаксические ошибки. Вставку можно сделать forall-коллекционную.
...
Рейтинг: 0 / 0
30.10.2017, 14:39
    #39544478
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
Elic,

мне просто показалось сомнительным, что нужно вставлять именно одни и те же значения во все поля, поэтому предположил, что тут нужен анпивотный инсерт
...
Рейтинг: 0 / 0
31.10.2017, 10:47
    #39545079
lLocust
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить дубль записи в одну и туже таблицу
envlLocust,

Отсутствие информации о механизме заполнения поля id, потенциальная необходимость создавать sequence с явным стартовым значением от существующего поля id, ну и "каков вопрос, таков и ответ".
А зачем "создавать sequence с явным стартовым значением от существующего поля id"? Почему нельзя текущий использовать? (если он есть, конечно... ну а если его нет - то его в 95% случаев все-равно "надо" создать)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вставить дубль записи в одну и туже таблицу / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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