Postgresql
Postgresql 函式試圖插入 1 行而不是 2 行
Postgresql 9.3,Mac OS X 10.6.7
我創建了這個函式,我想將兩個結果插入同一行。顯然,我將它插入 2 行的方式。
首先,這是表 T1:
test_app_development=# select * from T1; name | age | id -------+-----+---- jim | 50 | 1 bill | 55 | 2 Ed | 35 | 3 joe | 30 | 4 dave | 45 | 5 steve | 38 | 6 (6 rows)
現在的功能:
create or replace function stats_test() returns numeric as $$ begin insert into stats(stdv) select stddev(age) from T1; insert into stats(ave_age) select avg(age) from T1; return 1; end; $$ language plpgsql;
以下是函式的結果:
select stats_test(); test_app_development=# select * from stats; ave_age | id | stdv ---------+----+------- | 1 | 9.496 42.167 | 2 | (2 rows)
我嘗試了變化,但沒有運氣:
insert into stats(ave_age,stdv) select avg(age), stddev(age) from T1;
我已經用這個功能試過了,它對我來說很好用。
create or replace function stats_test() returns numeric as $$ begin insert into stats(ave_age, stdv) select avg(age), stddev(age) from "T1"; return 1; end; $$ language plpgsql