mysql中replace into與insert into區(qū)別
replace into 遇到主鍵或唯一索引沖突時,會先刪除數(shù)據(jù),再插入新數(shù)據(jù)
insert into 遇到主鍵或唯一索引沖突時,會直接報錯,不插入數(shù)據(jù)
案例:
新建一個test表,三個字段,id,title,uid, id是自增的主鍵,uid是唯一索引;
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `uid` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sss` (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
插入2條數(shù)據(jù)
insert into test(title,uid) VALUES ('張三','001');
insert into test(title,uid) VALUES ('張三','002');
使用 insert into插入數(shù)據(jù)時,報錯
insert into test(title,uid) VALUES ('李四','001');

使用 replace into插入數(shù)據(jù)時:
replace into test(title,uid) VALUES ('李四','001');

replace into 跟 insert 功能類似,不同點在于:replace into 首先嘗試插入數(shù)據(jù)到表中, 1. 如果發(fā)現(xiàn)表中已經(jīng)有此行數(shù)據(jù)(根據(jù)主鍵或者唯一索引判斷)則先刪除此行數(shù)據(jù),然后插入新的數(shù)據(jù)。 2. 否則,直接插入新數(shù)據(jù)。
要注意的是:插入數(shù)據(jù)的表必須有主鍵或者是唯一索引!否則的話,replace into 會直接插入數(shù)據(jù),這將導(dǎo)致表中出現(xiàn)重復(fù)的數(shù)據(jù)。
到此這篇關(guān)于mysql中replace into與insert into區(qū)別的文章就介紹到這了,更多相關(guān)mysql replace into與insert into內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫多表聯(lián)合查詢代碼示例
所謂聯(lián)合就是把多個表的記錄往一起合并,一起進行查詢,也叫多表查詢,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫多表聯(lián)合查詢的相關(guān)資料,需要的朋友可以參考下2024-01-01
MySQL按月自動設(shè)置表分區(qū)的實現(xiàn)
本文主要介紹了MySQL按月自動設(shè)置表分區(qū)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
MySQL 數(shù)據(jù)庫如何解決高并發(fā)問題
這篇文章主要介紹了MySQL 如何處理高并發(fā),幫助大家更好的優(yōu)化MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下2020-09-09

