佳木斯湛栽影视文化发展公司

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

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

熱門標簽:百度競價排名 地方門戶網(wǎng)站 AI電銷 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 服務(wù)外包 呼叫中心市場需求 Linux服務(wù)器

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),當(dāng)插入遇到約束錯誤時,直接返回,或者改為執(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)絡(luò)通訊聲明:本文標題《postgresql 實現(xiàn)replace into功能的代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    融水| 仪陇县| 宿州市| 南充市| 固始县| 开阳县| 安阳市| 西贡区| 山丹县| 遵义市| 镇沅| 化德县| 宾阳县| 浪卡子县| 德化县| 莎车县| 齐齐哈尔市| 辽宁省| 凌云县| 库尔勒市| 乌拉特中旗| 北流市| 金沙县| 封丘县| 阿拉善左旗| 通榆县| 台州市| 达日县| 五华县| 富民县| 清水县| 英德市| 霍林郭勒市| 武功县| 来凤县| 黑河市| 凤冈县| 抚松县| 新乡县| 宁阳县| 定安县|