插入數據的表必須有主鍵或者是唯一索引!否則 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. 否則沒有此行數據的話,直接插入新數據。