最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle實(shí)現(xiàn)同表更新或插入的三種方案

 更新時(shí)間:2023年11月15日 08:35:38   作者:xyy123  
這篇文章主要給大家介紹了Oracle實(shí)現(xiàn)同表更新或插入的三種方案,文章通過代碼示例和圖文結(jié)合講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

一、需求

現(xiàn)在有一張count表,存在兩個(gè)字段name和count,分別記錄輸入的名稱以及出現(xiàn)的次數(shù)

要求輸入的名稱若在表中未存在,則新增,并初始化count的值為1

若在表中已經(jīng)存在,則將count值加一

二、實(shí)現(xiàn)

2.1 方案一

在處理前統(tǒng)計(jì)name出現(xiàn)的次數(shù),若大于一,則修改,否則為新增

2.2 方案二

根據(jù)上面的邏輯,使用plsql實(shí)現(xiàn)

DECLARE
  v_count NUMBER;
  v_name char(20);
BEGIN
  v_name:='a';  

  SELECT COUNT(*)
  INTO v_count
  FROM (SELECT name, COUNT(*) as count
        FROM count
        GROUP BY name)
  WHERE name = v_name;
  
  IF v_count >= 1 THEN
    UPDATE count
    SET count = count + 1
    WHERE name = v_name;
  ELSE
    INSERT INTO count values(v_name,1);
  END IF;
END;

更新:此時(shí)往表中插入一條已經(jīng)存在的name a,只需修改v_name 的值為'a'

新增:此時(shí)往表中插入一條不存在的name c,修改v_name 的值為'c'

2.3 方案三

根據(jù)上面的邏輯,使用merge into實(shí)現(xiàn)

merge into count c1
using ( select count(*) count from count c2 where c2.name = 'a' ) c3
on (c3.count > 0)
when matched then
    update set c1.count = c1.count + 1 where c1.name = 'a'
when not matched then
    insert values('a',1) ;

現(xiàn)在清空數(shù)據(jù)表,新增一行數(shù)據(jù)a

再次點(diǎn)擊執(zhí)行,則執(zhí)行修改邏輯

到此這篇關(guān)于Oracle實(shí)現(xiàn)同表更新或插入的方案總結(jié)的文章就介紹到這了,更多相關(guān)Oracle同表更新或插入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

黄骅市| 肇庆市| 越西县| 塔城市| 阿拉尔市| 恭城| 合水县| 财经| 黄陵县| 博乐市| 攀枝花市| 崇阳县| 桦甸市| 玛曲县| 大悟县| 莱阳市| 佛教| 甘孜县| 肥城市| 长治市| 玛曲县| 菏泽市| 廊坊市| 临澧县| 绥化市| 观塘区| 湘潭县| 天峻县| 呼伦贝尔市| 唐海县| 洛阳市| 叙永县| 宁城县| 霞浦县| 富顺县| 南木林县| 南城县| 琼海市| 安西县| 广德县| 岳池县|