在插入資料的時候,有時候會遇到主鍵(唯一鍵)衝突的情況。下面講述兩種解決辦法。
insert into 表名[(字段列表:包含主鍵)]
values(值列表)
on duplicate key update 字段 = 新值。
示例如下 :
insert
into
p_user(id
,name
,age
,***
)values(1
,'luco',13
,'b1y')--
如果主鍵
(唯一鍵
)衝突用到下面語句
onduplicate
keyupdate
age=
199,
name
='luco'
,***
='b1y'
;
表中已經有了id(primary key)的記錄資料,此時再插入id=1的資料,肯定提示衝突。這裡就是當衝突時,將原先除了主鍵之外的字段進行更新(如果主鍵為id, 同時name為unique,新插入的資料中name在表中已經存在,則提示name資料衝突,插入失敗!)。
語法格式如下:
replace into 表名[(字段列表:包含主鍵)] values(值列表)
示例如下:
replace into p_user (id,name,age,***) values(1,'jane5',14,'b0oy')
總之,無論更新還是替換,都是先刪除原資料,再重新插入(根據影響行數判斷)。但是替換更便捷!需要注意的是除了主鍵外,表中是否還存在unique。 Mysql衝突更新 mysql 主鍵衝突更新
mysql的特殊功能,在主鍵衝突的情況下,可以根據主鍵進行更新資料 建表語句 全量指令碼 建立表 tb day hold 持倉表 的當前表 select create table tb day hold 持倉表.drop table if exists tb day hold create tabl...
mysql 忽略主鍵衝突 避免重複插入的幾種方式
方案一 使用 ignore 關鍵 字如果是用主鍵primary或者唯一索引unique區分了記錄的唯一性,避免重複插入記錄可以使用 insert ignore into table name email,phone,user id values test9 163.com 99999 9999 這樣...
mysql忽略主鍵衝突,避免重複插入的幾種方式
本文章來給大家提供三種在mysql中避免重複插入記錄方法,主要是講到了ignore,replace,on duplicate key update三種方法,有需要的朋友可以參考一下 方案一 使用ignore關鍵字 如果是用主鍵primary或者唯一索引unique區分了記錄的唯一性 如果沒有唯一索引...