2013-03-20 203 views
0

我使用PLPGSQL要做到這一點,但得到如何插入一條記錄到表

記錄類型尚未註冊

錯誤這是

一樣簡單
declare 
    myrecord RECORD; 
begin 
    SELECT myrow as "myrow" INTO myrecord FROM (SELECT 1, 2); 
    INSERT INTO mytable(col1,col2) 
    VALUES (myrecord.*); 
end; 

可以請任何人幫忙嗎? 我的postgres版本是8.4

+1

問題:INSERT INTO mytable(col1,col2)values(1,2)'?或者,如果**必須基於選擇的INSERT INTO mytable(col1,col2) select 1,2'; – 2013-03-20 15:01:26

+0

必須基於,導致樣本不是真實的情況。 在真實情況下,記錄是從查詢中提取的。 我想保留查詢輸出的記錄結構,而不是爲INSERT語句使用查詢本身。 – xsubira 2013-03-20 17:29:43

回答

0

有兩種有效的方法可以做到這一點。第一個是:

begin 
    INSERT INTO mytable(col1,col2) 
    VALUES (1, 2); 
end; 

二是:

begin 
    INSERT INTO mytable(col1,col2) 
    SELECT 1, 2; 
end; 

當然這些都不需要在PL/pgSQL的塊。

順便說一句,在psql工具中,你可以做\h insert來獲取有效的插入表單的列表。這些是手冊中的synposes,這是使該工具非常有用的一件事。

+0

你似乎解決了這個問題,而不是問題。 目標正在使用記錄。 – xsubira 2013-07-08 08:38:31