主頁 > 知識庫 > postgresql 實現(xiàn)replace into功能的代碼

postgresql 實現(xiàn)replace into功能的代碼

熱門標簽:江蘇400電話辦理官方 天津開發(fā)區(qū)地圖標注app 400電話申請客服 廣州電銷機器人公司招聘 濟南外呼網(wǎng)絡電話線路 電銷機器人能補救房產(chǎn)中介嗎 地圖標注要花多少錢 電話機器人怎么換人工座席 移動外呼系統(tǒng)模擬題

PostgreSQL 9.5-

使用函數(shù)或with實現(xiàn)

create table test(id int primary key, info text, crt_time timestamp);
with upsert as (update test set info='test',crt_time=now() where id=1 returning *) insert into test select 1,'test',now() where not exists (select 1 from upsert where id=1); 

PostgreSQL 9.5+

PostgreSQL 9.5 引入了一項新功能,UPSERT(insert on conflict do),當插入遇到約束錯誤時,直接返回,或者改為執(zhí)行UPDATE。

INSERT INTO table_name VALUES() ON conflict (唯一索引字段) DO
UPDATE ...

補充:PostgreSQL中select into用法總結(jié)

在普通的sql中,postgresql支持seelct......into......

但是動態(tài)調(diào)用時候不支持select......into......

比如:

create or replace FUNCTION test () RETURNS void AS
$body$
DECLARE
toalnum int;
BEGIN
execute 'select sum(colname) into totalnum';
return;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

以上情況會報錯。。。。。

因該修改為如下

create or replace FUNCTION test () RETURNS void AS
$body$
DECLARE
toalnum int;
BEGIN
execute 'select sum(colname)' into totalnum;
return;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 解決PostgreSQL Array使用中的一些小問題
  • postgresql 中的 like 查詢優(yōu)化方案
  • 解析PostgreSQL中Oid和Relfilenode的映射問題
  • PostgreSQL regexp_matches替換like模糊查詢的操作
  • PostgreSQL 禁用全表掃描的實現(xiàn)

標簽:辛集 杭州 榆林 寶雞 濮陽 海西 溫州 昭通

巨人網(wǎng)絡通訊聲明:本文標題《postgresql 實現(xiàn)replace into功能的代碼》,本文關鍵詞  postgresql,實現(xiàn),replace,into,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《postgresql 實現(xiàn)replace into功能的代碼》相關的同類信息!
  • 本頁收集關于postgresql 實現(xiàn)replace into功能的代碼的相關信息資訊供網(wǎng)民參考!
  • 推薦文章