我無法找到一個清楚的語法解釋來創建(和使用)僅用於函數內部計算的表。任何人都可以給我一個語法例子嗎?臨時表postgresql函數
從我發現,我已經嘗試了這一點(有和沒有@
temp_table
前):
CREATE FUNCTION test.myfunction()
RETURNS SETOF test.out_table
AS $$
DECLARE @temp_table TABLE
(
id int,
value text
)
BEGIN
INSERT INTO @temp_table
SELECT id, value
FROM test.another_table;
INSERT INTO test.out_table
SELECT id, value
FROM @temp_table;
RETURN END
$$ LANGUAGE SQL;
我得到:
ERROR: syntax error at or near "DECLARE" LINE 5: DECLARE @temp_table TABLE
-
我也試過建議使用CREATE TABLE方法here,這樣:
CREATE FUNCTION test.myfunction()
RETURNS SETOF test.out_table
AS $$
CREATE TABLE temp_table AS
SELECT id, value
FROM test.another_table;
INSERT INTO test.out_table
SELECT id, value
FROM temp_table;
$$ LANGUAGE SQL;
而且我得到這個:
ERROR: relation "temp_table " does not exist LINE 11: FROM temp_table
(當然,我知道了temp_table不需要我在做什麼在上面的代碼,但是這不是問題的關鍵:) =>我要來理解語法,以得到它的工作)
Postgres爲此使用臨時表。表變量是SQL Server的一項功能。 –
在手冊中的哪裏找到語法'DECLARE @temp_table TABLE ...'? –