我們這裡是做了乙個資料的接入問題,需要不停的向資料庫中寫入資料,那這些資料中有的是重複的,重複的資料寫入資料庫既沒有意義,也浪費記憶體空間,所以我們需要想乙個辦法來解決資料重複插入的問題。
現在我自己模擬三條資料來做乙個資料的寫入,正常的insert語句sql為insert into tb_user (username,ped,edit_time) values("小明",1,2018....),..
這裡有三個解決方法:
1、利用ignore
關鍵字方法原理:忽略了有唯一索引欄位的相同資料,只新增不同的資料,成功的操作條數是新增的真實條數,若沒有ignore關鍵字會報錯
sql為:insert ignore into tb_user (username,ped,edit_time) values("小明",1,2018....),..;
說明:但使用次方法就必須表中有某個欄位是具有唯一性或約束性的,如果你的字段沒有的話,執行完該語句和普通的insert語句結果沒有區別
現在是新增唯一索引
的方法:alter table `t_user` add unique(`edit_time`); 我這裡是給edit_time新增了唯一索引,大家可以按照自己的表結構來選取唯一索引的新增。
2、利用
replace
關鍵字方法原理:將相同的字段資料直接先刪掉,再重新新增,,成功之後顯示操作條數的是刪除的條數加上新新增的條數
sql為:replace into
tb_user (username,ped,edit_time) values("小明",1,2018....),..;
說明:該方法與方法一類似,再沒有唯一約束性時與普通的insert沒有區別
3、on duplicate key update
語句說明:你也可以在insert into…..後面加上 on duplicate key update方法來實現。如果您指定了on duplicate key update,並且插入行後會導致在乙個unique索引或primary key中出現重複值,則執行舊行update。
mysql資料庫中的 MySQL資料庫中定義
定義資料表 假如某個電腦生產商,它的資料庫中儲存著整機和配件的產品資訊。用來儲存整機產品資訊的表叫做pc 用來儲存配件供貨資訊的表叫做parts。在pc表中有乙個字段,用來描述這款電腦所使用的cpu型號 在parts表中相應有乙個字段,描述的正是cpu的型號,我們可以把它想成是全部cpu的型號列表。...
mysql資料庫中的方法 mysql資料庫基本方法
啟動 net start mysql 進入 mysql u root p mysql h localhost u root p databasename 列出資料庫 show databases 選擇資料庫 use databasename 列出 show tables 顯示 列的屬性 show c...
mysql資料庫鎖 MySQL 資料庫中的那些鎖
全域性鎖全域性鎖是粒度最大的鎖,基本上也使用不上,就像我們家的大門一樣,控制著整個資料庫例項。全域性鎖就是對整個資料庫例項加鎖,讓整個資料庫處於唯讀狀態。mysql 提供了乙個加全域性讀鎖的方法,命令是 flush tables with read lock ftwrl 加鎖之後整個資料庫例項處於唯...