Re: extend INSERT by 'INSERT INTO table FETCH ... FROM cursor' syntax
От | Christoph Haller |
---|---|
Тема | Re: extend INSERT by 'INSERT INTO table FETCH ... FROM cursor' syntax |
Дата | |
Msg-id | 200310271539.QAA10042@rodos обсуждение исходный текст |
Ответ на | extend INSERT by 'INSERT INTO table FETCH ... FROM cursor' syntax (Alexander Vlasenko <intrnl_edu@ilyichevsk.odessa.ua>) |
Ответы |
Re: extend INSERT by 'INSERT INTO table FETCH ... FROM cursor' syntax
|
Список | pgsql-sql |
> > Please CC me, I am not subscribed. > > An imaginary SQL statement > INSERT INTO table FETCH ... FROM cursor; > looks almost the same as currently available > INSERT INTO table SELECT ...; > > I tried it because I needed to insert a row in a table > after I DELETEd a set of rows, something like this: > > BEGIN; > DECLARE total CURSOR > FOR SELECT=20 > SUBSTR(datetime,1,7)||'-01 00:00:00' as month, > client, > SUM(money) > FROM stat > WHERE SUBSTR(datetime,1,7)=3D'2003-10' > GROUP BY month,client; > DELETE FROM stat WHERE SUBSTR(datetime,1,7)=3D'2003-10'; > INSERT INTO stat FETCH ALL FROM total; > COMMIT; > > but it does not work, chokes on FETCH ALL. > > I want to sum up all the money by month, delete all the rows > (possibly thousands of them) and insert one row per client > with monthly totals. > > Obviously I cannot swap order of INSERT and DELETE here. > > I hesitate to post this to pgsql-hackers@postgresql.org, > do I have to? ;) > > --=20 > Alexander Vlasenko > Using a temporary table to buffer the result comes to mind. Regards, Christoph
В списке pgsql-sql по дате отправления: