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

mysql實(shí)現(xiàn)merge into問題

 更新時(shí)間:2024年12月19日 11:58:24   作者:Mars'Ares  
文章介紹了在數(shù)據(jù)庫(kù)操作中,如何使用`REPLACE INTO`和`INSERT INTO ON DUPLICATE KEY UPDATE`語(yǔ)句進(jìn)行數(shù)據(jù)更新和插入操作,如果不想創(chuàng)建唯一性索引,可以通過存儲(chǔ)過程實(shí)現(xiàn),文章通過實(shí)驗(yàn)和驗(yàn)證,展示了這兩種方法的實(shí)際效果

一 前言

1.查了很多資料,replace into也好 insert into on duplicate key update 也好,都需要原始數(shù)據(jù)表具有唯一性索引。

2.網(wǎng)上方法很多,最簡(jiǎn)便還是使用如上語(yǔ)句,如果不想創(chuàng)建唯一性索引,則可以通過存儲(chǔ)過程實(shí)現(xiàn)。不解釋連招如下。

二 實(shí)驗(yàn)

-- 創(chuàng)建測(cè)試表
-- drop table test_a;
create  table test_a(
id VARCHAR (16),
name VARCHAR (16),
Operatime datetime
)
-- drop table test_b;
create table test_b(
id VARCHAR (16),
name VARCHAR (16),
Operatime datetime
)

-- 插入模擬數(shù)據(jù)
INSERT into test_b values(1,"1",now()),(2,"2",now());
INSERT into test_a values(1,"1",now()),(3,"3",now());

-- 查詢數(shù)據(jù)
SELECT * FROM test_b;
SELECT * FROM test_a;
 
delimiter $
CREATE PROCEDURE merge_a_to_b () BEGIN
-- 定義需要插入從a表插入b表的過程變量
DECLARE _ID VARCHAR (16);
DECLARE _NAME VARCHAR (16);
-- 游標(biāo)遍歷數(shù)據(jù)結(jié)束標(biāo)志 
DECLARE done INT DEFAULT FALSE;
-- 游標(biāo)指向a表結(jié)果集第一條-1位置
DECLARE cur_account CURSOR FOR SELECT ID, NAME FROM test_a;
-- 游標(biāo)指向a表結(jié)果集最后一條加1位置 設(shè)置結(jié)束標(biāo)志
DECLARE CONTINUE HANDLER FOR NOT FOUND  SET done = TRUE;
-- 打開游標(biāo)
OPEN cur_account;
-- 遍歷游標(biāo)
read_loop :
LOOP
--  取值a表當(dāng)前位置數(shù)據(jù)到臨時(shí)變量
	FETCH NEXT FROM cur_account INTO _ID,_NAME;

-- 如果取值結(jié)束 跳出循環(huán)
IF done THEN LEAVE read_loop; 
END IF;

-- 當(dāng)前數(shù)據(jù)做 對(duì)比 如果b表存在則更新時(shí)間 不存在則插入
IF NOT EXISTS ( SELECT 1 FROM TEST_B WHERE ID = _ID AND NAME=_NAME ) 
	THEN
		INSERT INTO TEST_B (ID, NAME,operatime) VALUES (_ID,_NAME,now());
	ELSE 
	UPDATE TEST_B  set operatime = now() WHERE ID = _ID AND NAME=_NAME;
END IF;

END LOOP;
CLOSE cur_account;

END $

三 驗(yàn)證

-- 驗(yàn)證語(yǔ)句
SELECT * FROM test_b;
SELECT * FROM test_a;
call merge_a_to_b();
SELECT * FROM test_b;
SELECT * FROM test_a;
  • 操作前

  • 操作后

數(shù)據(jù)1更新 數(shù)據(jù)3插入 ok

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MYSQL查看時(shí)區(qū)并設(shè)置時(shí)區(qū)的實(shí)現(xiàn)示例

    MYSQL查看時(shí)區(qū)并設(shè)置時(shí)區(qū)的實(shí)現(xiàn)示例

    本文主要介紹了MYSQL查看時(shí)區(qū)并設(shè)置時(shí)區(qū)的實(shí)現(xiàn)示例,包括查看全局和會(huì)話時(shí)區(qū)設(shè)置,設(shè)置全局和會(huì)話時(shí)區(qū)為東八區(qū),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • MySQL中l(wèi)imit語(yǔ)法及用法小結(jié)

    MySQL中l(wèi)imit語(yǔ)法及用法小結(jié)

    LIMIT 是 MySQL 中的一個(gè)特殊關(guān)鍵字,用于指定查詢結(jié)果從哪條記錄開始顯示,一共顯示多少條記錄,本文重點(diǎn)介紹MySQL中l(wèi)imit語(yǔ)法及用法小結(jié),感興趣的朋友一起看看吧
    2023-10-10
  • MySQL8新特性之全局參數(shù)持久化詳解

    MySQL8新特性之全局參數(shù)持久化詳解

    從8.0開始,可通過SET PERSIST命令將全局變量的修改持久化到配置文件中,下面這篇文章主要給大家介紹了關(guān)于MySQL8新特性之全局參數(shù)持久化的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • MySQL觸發(fā)器概念、原理與用法詳解

    MySQL觸發(fā)器概念、原理與用法詳解

    這篇文章主要介紹了MySQL觸發(fā)器概念、原理與用法,結(jié)合實(shí)例形勢(shì)詳細(xì)分析了mysql觸發(fā)器相關(guān)概念、原理、創(chuàng)建、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • centos7.3 安裝mysql5.7.18的詳細(xì)教程

    centos7.3 安裝mysql5.7.18的詳細(xì)教程

    這篇文章主要介紹了centos7.3 安裝mysql5.7.18的詳細(xì)教程,需要的朋友可以參考下
    2017-06-06
  • MySQL字符集和排序規(guī)則詳解(推薦)

    MySQL字符集和排序規(guī)則詳解(推薦)

    MySQL中,字符集和排序規(guī)則在處理文本數(shù)據(jù)時(shí)起著至關(guān)重要的作用,本文將詳細(xì)介紹 MySQL中的字符集和排序規(guī)則,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • MySQL DDL 引發(fā)的同步延遲該如何解決

    MySQL DDL 引發(fā)的同步延遲該如何解決

    這篇文章主要介紹了MySQL DDL 引發(fā)的同步延遲該如何解決,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-05-05
  • Mysql數(shù)據(jù)庫(kù)表中為什么有索引卻沒有提高查詢速度

    Mysql數(shù)據(jù)庫(kù)表中為什么有索引卻沒有提高查詢速度

    你有沒有想起過為什么明明再數(shù)據(jù)庫(kù)中有索引,但是查詢速度卻并沒有希望的那樣快?本篇文章將帶給你答案,跟小編一起看看吧
    2022-02-02
  • mysql的MVCC多版本并發(fā)控制的實(shí)現(xiàn)

    mysql的MVCC多版本并發(fā)控制的實(shí)現(xiàn)

    這篇文章主要介紹了mysql的MVCC多版本并發(fā)控制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 你可能有所不知的MySQL正則表達(dá)式總結(jié)

    你可能有所不知的MySQL正則表達(dá)式總結(jié)

    使用正則表達(dá)式可以檢索或替換符合某個(gè)模式的文本內(nèi)容,根據(jù)指定的匹配模式匹配文本中符合要求的特殊字符串,下面這篇文章主要給大家介紹了關(guān)于MySQL正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

奉新县| 南木林县| 神农架林区| 中方县| 兴隆县| 乐至县| 富平县| 新干县| 和林格尔县| 长海县| 慈溪市| 苏州市| 宁南县| 富宁县| 岗巴县| 香格里拉县| 肇庆市| 漯河市| 武陟县| 祁门县| 扶余县| 锡林浩特市| 汤原县| 辽源市| 秦皇岛市| 宁化县| 垣曲县| 兰溪市| 通州市| 博湖县| 双流县| 盐津县| 屏南县| 哈巴河县| 紫阳县| 慈利县| 四子王旗| 墨江| 宜城市| 宝坻区| 都江堰市|