mysql 插入更新判斷 ON DUPLICATE KEY UPDATE
平時我們在設計資料庫表的時候總會設計 unique 或者 給表加上 primary key 的限制條件.
此時 插入資料的時候 ,經常會有這樣的情況:
我們想向資料庫插入一條記錄:
- 若資料表中存在以相同主鍵的記錄,我們就更新該條記錄。
- 否則就插入一條新的記錄。
如果在INSERT語句末尾指定了ON DUPLICATE KEY UPDATE,並且插入行後會導致在一個UNIQUE索引或PRIMARY KEY中出現重複值,則在出現重複值的行執行UPDATE;如果不會導致唯一值列重複的問題,則插入新行。
例如,如果列 a 為 主鍵 或 擁有UNIQUE索引,並且包含值1,則以下兩個語句具有相同的效果:
INSERT INTO test (a, b, c) VALUES ('1', 'b1', 'c1') ON DUPLICATE KEY UPDATE b='b2', c='c2'; UPDATE test SET b = 'b2', c = 'c2' WHERE a = '1'
主要方式 :
INSERT ... SELECT
INSERT ... ON DUPLICATE KEY UPDATE
INSERT ... ON DUPLICATE REPLACE
相關推薦
mysql 插入更新判斷 ON DUPLICATE KEY UPDATE
平時我們在設計資料庫表的時候總會設計 unique 或者 給表加上 primary key 的限制條件.此時 插入資料的時候 ,經常會有這樣的情況:我們想向資料庫插入一條記錄: 若資料表中存在以相同主鍵的記錄,我們就更新該條記錄。 否則就插入一條新的記錄。 如果在INSERT語句末尾指定
MYSQL的REPLACE和ON DUPLICATE KEY UPDATE使用
覆蓋 選項 insert pan ins ima pri details 匹配 REPLACE 我們在使用數據庫時可能會經常遇到這種情況。如果一個表在一個字段上建立了唯一索引,當我們再向這個表中使用已經存在的鍵值插入一條記錄,那將會拋出一個主鍵沖突的錯誤。當然,我們可能想用
mysql中的insert ... on duplicate key update column=IF(條件,值1,值2 )
mysql中的insert...on duplicate key update的用法注意點:1.確定唯一性索引欄位(如機構表中,機構編碼是唯一的,不可重複的)2.update 後面跟需要更新的欄位(只要唯一性欄位是重複了,則更新update後的欄位值)3.如果想增加限
【MySQL插入更新重複值】ON DUPLICATE KEY UPDATE用法
要插入的資料 與表中記錄資料的 惟一索引或主鍵中產生重複值,那麼就會發生舊行的更新 弊端:造成主鍵自增不連續。適合資料量不大的表。 ON DUPLICATE KEY UPDATE後面的條件 eg有如下表,僅主鍵存在UK(唯一)屬性: select * from Stude
mysql ON DUPLICATE KEY UPDATE,有則更新,無則插入
1、適合用在需要 判斷記錄是否存在,不存在則插入存在則更新的場景 a 為 主鍵 或 擁有UNIQUE索引 INSERT INTO TABLE (a,c) VALUES (1,3),(1,8) ON DUPLICATE KEY UPDATE c=c+1;----c=4 INSE
mysql重複插入insert時更新ON DUPLICATE KEY UPDATE
mysql當插入重複時更新的方法: 第一種方法: 示例一:插入多條記錄 假設有一個主鍵為 client_id 的 clients 表,可以使用下面的語句: INSERT INTO clients (client_id,client_name,cl
MySQL_插入更新 ON DUPLICATE KEY UPDATE
int sele cor 適用於 tab 情況下 限制 情況 tail 平時我們在設計數據庫表的時候總會設計 unique 或者 給表加上 primary key 的限制條件. 此時 插入數據的時候 ,經常會有這樣的情況: 我們想向數據庫插入一條記錄: 若
MYSQL 批量插入資料 insert into ON DUPLICATE KEY UPDATE
#批量插入並根據重複資料進行處理 class DF_MYSQL(DBBase): #定義操作更新時間相關的方法 #獲取上次更新的時間 def __del__(self): &
on duplicate key update 重複插入時更新 使用
基本語法: INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1; (這裡a為主鍵) 這條sql相等於兩條sql: 1.INSERT INTO TABLE (a,c) VALUES (1,3) 2.U
Mysql 插入資料存在時執行update操作:ON DUPLICATE KEY UPDATE
-- 建立表:test: CREATE TABLE `test` ( `objId` int(10) NOT NULL, `orgId` int(10) NOT NULL, `objName` varchar(50) NOT NULL, PRIMARY KE
MySql避免重複插入記錄方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
本文章來給大家提供三種在mysql中避免重複插入記錄方法,主要是講到了ignore,Replace,ON DUPLICATE KEY UPDATE三種方法,各位同學可嘗試參考。案一:使用ignore關鍵字如果是用主鍵primary或者唯一索引unique區分了記錄的唯一性,避
記錄:mysql中的case when|on duplicate key update|重複插入返回主鍵的用法
在平時的開發中不免接觸到資料庫,這裡記錄一些平時開發中遇到的細節問題,與大家共勉。 mysql中的條件控制:case函式 在操作資料庫的開發中不免遇到一些類似if else的判斷,這時候就用到了Case函式,首先我們用網上用了好多次的例子來看看它的用法:
MySql避免"重複插入記錄"的方法(INSERT ignore into,Replace into,ON DUPLICATE KEY UPDATE)
案一:使用ignore關鍵字 如果是用主鍵primary或者唯一索引unique區分了記錄的唯一性,避免重複插入記錄可以使用: 程式碼如下 複製程式碼 1 INSERT IGNORE INTO table_name (email, phone, us
主鍵衝突的話就更新否則插入 (ON DUPLICATE KEY UPDATE )
INSERT INTO user_tag_exp (uid,tag,detail)VALUES(?,?,?) ON DUPLICATE KEY UPDATE detail=? 看程式竟然發現Mysql有這個功能! 以前寫的程式呀…………………… MySQL 自
避坑必看:很詳盡的MyBatis返回自增主鍵實驗(包括插入或更新SQL語句insert on duplicate key update的自增主鍵返回情況)
目錄 (7)介面 5. 總結 本篇文章對MyBatis操作MySQL時自增主鍵返回情況進行詳細的實驗,給出不同情況下Mybatis返回自增主鍵的不同行為,僅基於實驗結果,不做原始碼分
深入mysql "ON DUPLICATE KEY UPDATE" 語法的分析
入行 能說 問題 values cor () 功能 copy 導致 轉:http://www.jb51.net/article/39255.htmmysql "ON DUPLICATE KEY UPDATE" 語法如果在INSERT語句末尾指定了ON DUPLICATE K
mysql "ON DUPLICATE KEY UPDATE" 的使用
例子 lis 查看 字段名 style .sh eat 數據 foreach ON DUPLICATE KEY UPDATE 語法並不是SQL的標準語法,如果在句尾指定該語法,它會根據指定的主鍵或者唯一標示索引來更新數據庫的內容 具體的操作是想根據唯一標示查看數據庫是否存在
mysql INSERT ... ON DUPLICATE KEY UPDATE語句
not 股票 目的 一個 lin arc sta int prim 網上關於INSERT ... ON DUPLICATE KEY UPDATE大多數文章都是同一篇文章轉來轉去,首先這個語法的目的是為了解決重復性,當數據庫中存在某個記錄時,執行這條語句會更新它,而不存在這條
ON DUPLICATE KEY UPDATE在mysql的INSERT語句中用法
1、如果在INSERT語句後面帶上ON DUPLICATE KEY UPDATE 子句,而要插入的行與表中現有記錄的惟一索引或主鍵中產生重複值,那麼就會發生舊行的更新; 2、如果插入的行資料與現有表中記錄的唯一索引或者主鍵****不重複,則執行新紀錄插入操作。 示例: creat
ON DUPLICATE KEY UPDATE單個增加更新及批量增加更新的sql
在實際應用中,經常碰到匯入資料的功能,當匯入的資料不存在時則進行新增,有修改時則進行更新, 在剛碰到的時候,第一反應是將其實現分為兩塊,分別是判斷增加,判斷更新,後來發現在mysql中有 ON DUPLICATE KEY UPDATE一步就可以完成,感覺實在是太方便了, &n