MySQL中replace into 、insert into 、insert ignore into 的區別。

插入數據的表必須有主鍵或者是唯一索引!否則 replace into、insert ignore into、insert into 會直接插入數據,這將導致表中出現重複的數據。

-- replace into
   -- replace into 跟 insert 功能類似,不同點在於:
       1. replace into 首先嚐試插入數據到表中,如果發現表中已經有此行數據(根據主鍵或者唯一索引判斷)則先刪除此行數據,然後插入新的數據;
       2. 否則沒有此行數據的話,直接插入新數據。

-- insert into
      1. insert into 如果發現表中已經有此行數據(根據主鍵或者唯一索引判斷)則會報"Duplicate entry 'xxx-yyy' for key 'PRIMARY'"錯誤;
      2. 否則沒有此行數據的話,直接插入新數據。

-- insert ignore into 
      1. 如果發現表中已經有此行數據(根據主鍵或者唯一索引判斷)則跳過此查詢,不對數據庫作任何操作;
      2. 否則沒有此行數據的話,直接插入新數據。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章