Проблема с циклом

rudiarius
Дата: 10.12.2007 12:48:05
Всем привет! Есть вопрос я хочу с помощью цикла пронумеровать строки таблицы (их примерно 3500)
DECLARE
i number:=1;
begin
for i in 1..3500 loop
update emp_otdel set REC_ID=i+1;
end loop;
end;
В таблицу добавляется как 3501 в каждую
Mikst
Дата: 10.12.2007 12:50:03
:) тяжелый случай.

update emp_otdel set REC_ID=rownum+1;

А над своим циклом задумайся, что именно он делает 3500 раз.
Тифа
Дата: 10.12.2007 12:55:09
update emp_otdel set REC_ID=rownum
Тифа
Дата: 10.12.2007 12:57:01
упс чет не поглядел ответ то уже есть

а зачем нумерация с 2 идет?
ERROR MESSAGE
Дата: 10.12.2007 12:58:42
rudiarius
Всем привет! Есть вопрос я хочу с помощью цикла пронумеровать строки таблицы (их примерно 3500)
DECLARE
i number:=1;
begin
    for i in 1..3500 loop
        update emp_otdel set REC_ID=i+1;
    end loop;
end;
В таблицу добавляется как 3501 в каждую
Для таковой пронумерации можно обойтись одним простым АПДЕЙТом - ето раз.

Какого жуя ты, друже, переменную i number:=1; заявил. Она нигде не используется в твоем коде - ето два.

Расскажи ты нам, мил человек, какие столбики есть у тебя в табле emp_otdel? Нет ли там, волей случая, столба с именем I? - Ето три.

И напоследок сознайся, что ты хотел сказать русскими словами "В таблицу добавляется как 3501 в каждую"?
Объясни ето по-русски с коряво-шершаво-кондовыми примерами,
дабы любой дурень понял, что мысль твоя значит и есть ли она - ето четыре.

И еще вопрос в постскриптуме:
Как ты думаешь, что будет, если в UPDATE не написать кляузу WHERE?
Какие строки етот Оракул будет менять?
Тифа
Дата: 10.12.2007 13:04:33
ERROR MESSAGE
rudiarius
Всем привет! Есть вопрос я хочу с помощью цикла пронумеровать строки таблицы (их примерно 3500)
DECLARE
i number:=1;
begin
    for i in 1..3500 loop
        update emp_otdel set REC_ID=i+1;
    end loop;
end;
В таблицу добавляется как 3501 в каждую
Для таковой пронумерации можно обойтись одним простым АПДЕЙТом - ето раз.

Какого жуя ты, друже, переменную i number:=1; заявил. Она нигде не используется в твоем коде - ето два.

Расскажи ты нам, мил человек, какие столбики есть у тебя в табле emp_otdel? Нет ли там, волей случая, столба с именем I? - Ето три.

И напоследок сознайся, что ты хотел сказать русскими словами "В таблицу добавляется как 3501 в каждую"?
Объясни ето по-русски с коряво-шершаво-кондовыми примерами,
дабы любой дурень понял, что мысль твоя значит и есть ли она - ето четыре.

И еще вопрос в постскриптуме:
Как ты думаешь, что будет, если в UPDATE не написать кляузу WHERE?
Какие строки етот Оракул будет менять?


впринципе "В таблицу добавляется как 3501 в каждую" мне кажется и есть отсутсвия условия, все строчки становятся 2,3,4 и т.д до 3501