我有一堆插入語句,其列表的列數各不相同,如果記錄不存在,我需要執行這些查詢。我試圖將其作爲在postgresql中插入或更新9.1
do $$
begin
IF not exists (SELECT 1 FROM gst_type_customer WHERE name = 'Unregistered') THEN
insert into gst_type_customer(create_date,write_date,create_uid,write_uid,name) values((now() at time zone 'UTC'),(now() at time zone 'UTC'),1,1,'Unregistered');
END IF;
end
$$
即使上面的代碼不工作,雖然實現了批量查詢,將需要大量的時間,所以我想製作一個存儲過程,我可以打電話爲
merge_check(insertquery,name[column to check for duplication],value)
的,但我無法直接執行插入查詢。
到目前爲止,我還拿出
CREATE OR REPLACE FUNCTION merge_tabla(data text)
RETURNS void AS
$BODY$
BEGIN
execute(data);
END;
$BODY$
LANGUAGE plpgsql
select merge_table("insert into gst_type_customer(name) values('Unregistered')")
,但我得到一個錯誤說
列 「插入gst_type_customer(名稱)VALUES( '未註冊')」 不存在
INSERT INTO xxx SELECT ...要插入的值... WHERE NOT EXISTS(SELECT * FROM xxx WHERE ... exists condition ...)'? –
感謝您的回覆, –
感謝您的回覆,是不是像上面的代碼檢查,如果它不存在,那麼它插入,該代碼段工作正常,可以給我一個例子,如果我我不理解。 –