2014-04-03 96 views
0

我有一個plpgsql函數,它創建一個execute語句,我希望它將它執行到一個表中。標準EXECUTE ... INTO table_name沒有工作,所以我正在尋找替代品。基本上,select語句返回三個我想要保存到表中的列。PL/pgSQL INSERT INTO表

下面是執行的一些示例代碼:

query = 'SELECT name, work, phone FROM info WHERE name = ' 
     || quote_literal(inName) || ' ORDER BY phone'; 

理想的情況下,如果我只是運行查詢自己,我只想把一個SELECT INTO表名,但沒有與執行工作。

任何想法?

+0

「*將它執行成表格」*「毫無意義 –

+0

您可以選擇表格,爲什麼不執行? :O – KiaShakiba

回答

1

對於使用CREATE TABLE AS

EXECUTE 'CREATE TABLE foo AS 
    SELECT name, work, phone 
    FROM info WHERE name = ' || quote_literal(in_name) || ' ORDER BY phone'; 

SELECT INTO不鼓勵爲此目的:
Combine two tables into a new one so that select rows from the other one are ignored

SELECT/EXECUTE .. INTO ..是爲行,而不是在整個PLPGSQL表。

而plpgsql中的賦值運算符是:=而不是=
並且缺少單引號。
並且不要在Postgres中使用未加引號的混合大小寫標識符。

+0

這樣做!謝謝! – KiaShakiba