Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Базы данных > PostgreSQL
Перезагрузить страницу Как работать с функцией insert into
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
H_o_p_e H_o_p_e вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.02.2009
Thumbs up Как работать с функцией insert into - 16.02.2009, 15:34

Здравствуйте, подскажите, плиз, создана функция которая генерирует нужные мне значения и вставляет их в таблицу,но функция не работает когда таблица пустая,если имеется хоть одна запись все вставляеться без проблем
Ответить с цитированием
  (#2 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 16.02.2009, 20:58

Если там голый insert, то ему должно быть все равно.
Может, там какие-то поля вычисляются по имеющимся записям?

Короче, код в студию!
Ответить с цитированием
  (#3 (permalink)) Старый
H_o_p_e H_o_p_e вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.02.2009
Thumbs up 17.02.2009, 12:32

Функция выглядит так:
select setval('table2_nz_seq',1);
create function im() returns integer as'
declare
--n количество записей в таблице;
n integer;
--обьявляем счетчиком i;
i integer;
--обьявляем счетчиком j;
j integer;
--номер в таблице;
a integer[];
--название в таблице;
b text[];
--значение АКФ в таблице
c real[];
--минАКФ;
d real[];
--максАКФ;
e real[];
p integer;
s text[];
begin
--подсчитываем все записи в таблице1;
n:=count(*) from table1;
i:=1;
for i in 1..n-1 loop
--присваиваем массиву значение номера;
a[i]:=nomer from table1 where nz=i;
--присваиваем массиву значение протокола;
b[i]:=protokol from table1 where nz=i;
--присваиваем массиву значение акф;
c[i]:=akf from table1 where nz=i;
--присваиваем массиву значение мин_акф;
d[i]:=minakf from table1 where nz=i;
--присваиваем массиву значение макс_акф;
e[i]:=maxakf from table1 where nz=i;
end loop;
for i in 0..n-1 loop
s[i]:=b[i];
for j in i+1..n-1 loop
if c[i]=c[j] and c[i]<>0 then
begin
s[i]:=s[i]||''//''||b[j];
c[j]:=0;
end;
end if;
end loop;
if c[i]<>0 then
insert into table2 (nom,prot,akf,min,max)
values(a[i],s[i],c[i],d[i],e[i]);
end if;
end loop;
p:=count (*) from table2;
return p;
end;
'language 'plpgsql';
Может как то надо обнулять ключ типа serial, подскажите с помощью каких функций можно это сделать?
Ответить с цитированием
  (#4 (permalink)) Старый
H_o_p_e H_o_p_e вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.02.2009
Arrow 17.02.2009, 12:36

Я в insert преднамеренно не указываю nz-ключ, он типа serial и должен генерироваться автоматически, но если таблица пустая мне просто выдает ответ: "0 rows". Пробовала уже многие варианты, не получается
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно работать с функцией шифрования 123kiv Delphi 1 23.03.2011 13:25
Как работать с рекурсивной функцией 111 Delphi 0 23.01.2011 21:05
Как работать с функцией DuplicateHandle Влад Visual C++ 2 18.03.2010 16:35
Как работать с функцией INSERT ComatoZZZ MSSQL Server 4 18.11.2007 11:09
INSERT как с этим параметром работать zornig MySQL 10 02.11.2007 18:14
Как работать с функцией recv lpn_com WinAPI 2 04.02.2007 22:51
Как работать с функцией include Кошмар С/С++ 8 21.01.2007 16:29
Как работать с функцией SelectDirectory FANTOM181 C++ Builder 9 28.04.2006 18:56
Проблема с функцией rand как с ней работать Desolator С/С++ 5 13.03.2006 01:35
Как правильно работать с INSERT LARS SQL 19 30.11.2005 00:10
Как работать с функцией sprintf EUGIX .NET 6 17.08.2004 16:21
FindFileInTree как работать с этой функцией Anonymous Delphi 1 16.12.2002 11:40



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов