[SQL ] 關於 postgresql stored procedure 的問題
大家好,以下有一個問題想要請教一下
1. DBMS 環境:
psql (PostgreSQL) 8.3.3
contains support for command-line editing
2. 想法:
Table 1 (其中,~ 為一些欄位,除了 ba 之外,所有欄位都有資料)
mapno tsuga ba
-------+ ~ +-----+-----------------
bigint int double precision
Table 2
mapno ba
-------+ ~ +-----------------+
bigint double precision
我想做的事情是,如果 Table 1 中 tsuga 的欄位是某個特定值,例如說 1 好了
就把 Table 2 中的 ba 值進行 log 計算後複製到 Table 1 中的 ba 欄位
3. 我的作法
1 CREATE FUNCTION updatenf2() RETURNS void AS $$
2 DECLARE
3 tsuga_ba double precision;
4
5 BEGIN
6 FOR tsuga_ba in SELECT log(ba) as ba from nf_sample_tsuga WHERE ba!=0 LOOP
7 UPDATE nf_releve SET ba=tsuga_ba WHERE tsuga=1;
8 END LOOP;
9 END;
10
11 $$ LANGUAGE plpgsql;
接下來 select updatenf2()
不過很奇怪的是,它似乎在 ba 欄位中的數字都一模一樣,看了很久不知道問題在哪邊
mapno | ~ | tsuga | ba
-------------+----+-------+----
95192108140 | ~ | 1 | 3.17974616415469
95192109015 | ~ | 1 | 3.17974616415469
95192113035 | ~ | 1 | 3.17974616415469
95192113041 | ~ | 1 | 3.17974616415469
95192113167 | ~ | 1 | 3.17974616415469
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.82.16
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):