2015-11-18 61 views
1

這是我的代碼:PostgreSQL - 分配變量時出現語法錯誤?

amount INTEGER; 

amount := select count(*) from moneyTable; 

,我發現了以下錯誤:

ERROR: syntax error at or near "select" 

有人能幫助我。

+0

你想實現什麼? – trkoch

+0

@trkoch這是一個很好的問題,因爲我不知道我的回答是否正確 –

+0

@MrsEd即時試圖存儲變量數量的元組數量。然後稍後使用該變量進行其他處理。但目前即時通訊語法錯誤,我不知道爲什麼會發生這種情況。 – Brandon

回答

2

fine manual

An assignment of a value to a PL/pgSQL variable is written as:

variable { := | = } expression; 

select ...不是表達式。如果你想從一個SELECT賦值給變量,要使用INTO

select count(*) into amount from moneyTable; 
--    ^^^^^^^^^^^ 
+0

現在即時在「*」或附近獲得錯誤ERROR:語法錯誤。上下文:無效的類型名稱「count(*)into money from moneyTable」 – Brandon

+0

應該正常工作(http://sqlfiddle.com/#!15/6558d/1(抱歉函數格式化,sqlfiddle有多行美元的問題引用的字符串似乎))。你正在做一個函數,對吧? –

+0

我在函數的聲明部分使用它 – Brandon

1

無論是@mu is to short答案或本

amount := (select count(*) from moneyTable);