首頁  >  問答  >  主體

MySQL主鍵衝突時的更新操作與替換操作在功能上有何差異(如圖)

#

曾经蜡笔没有小新曾经蜡笔没有小新2690 天前846

全部回覆(2)我來回復

  • 世界只因有你

    世界只因有你2017-06-07 09:27:03

    INSERT ... ON DUPLICATE KEY UPDATEREPLACE是有區別的,前者INSERT失敗後執行UPDATE,後者相當於DELETE再INSERT,原來整行都消失哦!

    具體而言,如果你的表有3列的話:

    id name alias
    1  王五 王二麻子
    

    這兩句的效果是不一樣的:

    INSERT INTO pri (id, name) VALUES (1, '李四') ON DUPLICATE KEY UPDATE name = '李四'
    
    REPLACE INTO pri (id, name) VALUES (1, '李四')
    

    前者alias沒變,後者卻會變成null。

    回覆
    0
  • 迷茫

    迷茫2017-06-07 09:27:03

    insert into on duplicate update 是在原紀錄上進行操作
    replace 判斷如果有重複的話,先進行刪除操作,再進行插入操作

    回覆
    0
  • 取消回覆