欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

大批量數(shù)據(jù)用mysql批量更新數(shù)據(jù)的4種方法總結(jié)

 更新時(shí)間:2024年05月06日 11:08:12   作者:小哇666  
這篇文章主要給大家介紹了關(guān)于大批量數(shù)據(jù)用mysql批量更新數(shù)據(jù)的4種方法,要在MySQL中新增大批量數(shù)據(jù),可以通過(guò)以下幾種方法來(lái)實(shí)現(xiàn),文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下

建一個(gè)測(cè)試表

create table users
(
    id   int auto_increment
        primary key,
    name varchar(255) null,
    age  int          null
);

1 replace into 批量更新【謹(jǐn)慎用】

/**
  沒(méi)有就新增,id一樣,就修改
  特別注意:每列數(shù)據(jù)都要寫(xiě)上,不然就會(huì)設(shè)為null,你就慘了
 */
replace into users (id,name,age) values (1,'aa',20),(2,'bb',30),(3,'cc',40);

/* 找死 */
replace into users (id,age) values (1,21),(2,31),(3,41);

/* 正確寫(xiě)法 */
replace into users (id,name,age) values (1,'aa',21),(2,'bb',31),(3,'cc',41);

2 insert into ...on duplicate key update批量更新

/**
  執(zhí)行第一次:(首次數(shù)據(jù)庫(kù)表中沒(méi)有數(shù)據(jù),正常插入)
 */
insert into users (id,name,age) values (1,'aa',20),(2,'bb',30),(3,'cc',40)
on duplicate key update age=age+1;

/**
  沒(méi)有就新增,id一樣,就修改,age 列都加1
 */
insert into users (id) values (1),(2),(3)
on duplicate key update age=age+1;

/**
  將 name 從 'aa' ,改為 'aa-1',
  age加1
 */
insert into users (id,name) values (1,'aa-1'),(2,'bb-1'),(3,'cc-1')
on duplicate key update name=values(name) ,age=age+1;

/**
  將 name 從 ‘a(chǎn)a-1' 改為 'xiaowang'
  age 改為 10 ,以此類(lèi)推
 */
insert into users (id,name,age) values (1,'xiaowang',10),(2,'xiaoming',15),(3,'xiaochen',20)
on duplicate key update name=values(name),age=values(age);

3 創(chuàng)建臨時(shí)表,先更新臨時(shí)表,然后從臨時(shí)表中update

/**
  創(chuàng)建臨時(shí)表[session級(jí)別的,所以另開(kāi)個(gè)窗口看不見(jiàn)],先更新臨時(shí)表,然后從臨時(shí)表中聯(lián)表update
 */
create temporary table users_temp
select * from users;

select * from users_temp;
/* 修改臨時(shí)表 */
update users_temp set age=age+1;

/*
修改正式表的記錄
set位置,正式表要在前面
*/
update users,users_temp set users.age=users_temp.age where users.id=users_temp.id;

drop table users_temp;

4 使用mysql 自帶的語(yǔ)句構(gòu)建批量更新 [數(shù)據(jù)控制在1w以內(nèi)]

update users set age=age+1 where id in (1,2,3);

/**
  建議將修改記錄條數(shù)控制在1W左右,不要超過(guò)2W,否則會(huì)耗費(fèi)的時(shí)間也是成倍增加的
 */
update users
set name = case id
    when 1 then '小剛'
    when 2 then '小明'
    when 3 then '小陳'
    else name
end ;

update users
set name = case id
               when 1 then '小剛-1'
               when 2 then '小明-1'
               else name
    end
where id in (1,2,3) ;

總結(jié)

到此這篇關(guān)于大批量數(shù)據(jù)用mysql批量更新數(shù)據(jù)的4種方法總結(jié)的文章就介紹到這了,更多相關(guān)mysql批量更新數(shù)據(jù)方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL ERROR 1045 (28000): Access denied for user ''root''@''localhost'' (using password: NO) 的原因分解決辦法

    MySQL ERROR 1045 (28000): Access denied for user ''root''@''

    這篇文章主要介紹了MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 的原因分解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 淺談一下MyISAM和InnoDB存儲(chǔ)引擎的區(qū)別

    淺談一下MyISAM和InnoDB存儲(chǔ)引擎的區(qū)別

    這篇文章主要介紹了MyISAM和InnoDB存儲(chǔ)引擎的區(qū)別,存儲(chǔ)引擎是MySQL中特有的一個(gè)術(shù)語(yǔ),其它數(shù)據(jù)庫(kù)中沒(méi)有,實(shí)際上存儲(chǔ)引擎是一個(gè)表存儲(chǔ)/組織數(shù)據(jù)的方式,今天就跟小編來(lái)看看MyISAM和InnoDB存儲(chǔ)引擎的區(qū)別,需要的朋友可以參考下
    2023-04-04
  • mysql表優(yōu)化、分析、檢查和修復(fù)的方法詳解

    mysql表優(yōu)化、分析、檢查和修復(fù)的方法詳解

    這篇文章主要介紹了mysql表優(yōu)化、分析、檢查和修復(fù)的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了MySQL表進(jìn)行優(yōu)化,分析與修復(fù)等操作的各種常見(jiàn)命令與使用技巧,需要的朋友可以參考下
    2016-04-04
  • Linux下mysql的root密碼修改方法

    Linux下mysql的root密碼修改方法

    mysql是我們經(jīng)常在linux或者windows需要用的一種數(shù)據(jù)庫(kù),相信每位程序員們對(duì)mysql應(yīng)該都再熟悉不過(guò)了,但是有時(shí)大腦短路,突然忘記mysql的超級(jí)用戶root的密碼,這個(gè)時(shí)候就要修改個(gè)新的密碼了,下面這篇文章就介紹了Linux下mysql的root密碼修改方法,一起來(lái)看看吧。
    2017-03-03
  • MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用詳解

    MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用詳解

    在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)進(jìn)行流程的控制。本文就詳細(xì)的介紹這幾種方法,感興趣的可以了解一下
    2021-06-06
  • MySQL 元數(shù)據(jù)鎖及問(wèn)題排查的解決

    MySQL 元數(shù)據(jù)鎖及問(wèn)題排查的解決

    MySQL中的元數(shù)據(jù)鎖主要用于管理并發(fā)操作下的數(shù)據(jù)字典一致性,本文主要介紹了MySQL 元數(shù)據(jù)鎖及問(wèn)題排查的解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-09-09
  • centOS7安裝MySQL數(shù)據(jù)庫(kù)

    centOS7安裝MySQL數(shù)據(jù)庫(kù)

    本文給大家簡(jiǎn)單介紹了如何在centOS7下安裝MySQL5.6數(shù)據(jù)庫(kù)的方法,以及一些注意事項(xiàng),希望對(duì)大家實(shí)用mysql能夠有所幫助
    2016-12-12
  • MySQL 句柄數(shù)占用過(guò)多的解決方法

    MySQL 句柄數(shù)占用過(guò)多的解決方法

    本文主要介紹解決MySQL句柄占用過(guò)多的方法,簡(jiǎn)單實(shí)用,需要的朋友可以參考下。
    2016-05-05
  • 如何通過(guò)sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn)(以mysql為例)

    如何通過(guò)sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn)(以mysql為例)

    這篇文章主要給大家介紹了關(guān)于如何通過(guò)sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn),本文以mysql為例,項(xiàng)目中遇到一個(gè)需求,要求查處菜單節(jié)點(diǎn)的所有節(jié)點(diǎn),這里給大家總結(jié)下,需要的朋友可以參考下
    2023-08-08
  • MySql 5.7.17 winx64的安裝配置詳細(xì)教程

    MySql 5.7.17 winx64的安裝配置詳細(xì)教程

    這篇文章主要介紹了MySql 5.7.17 winx64的安裝配置教程,初始化數(shù)據(jù)庫(kù)、配置相關(guān)信息的方法在本文中介紹的非常詳細(xì),需要的朋友參考下
    2017-01-01

最新評(píng)論