MySQL中unique列上插入重複值解決辦法

2021-06-28 16:42:07 字數 1862 閱讀 3497

當unique列在乙個unique鍵上插入包含重複值的記錄時,我們可以控制mysql如何處理這種情況:使用ignore關鍵字或者onduplicate key update子句跳過insert、中斷操作或者更新舊記錄為新值。

1.新建一張測試表tbtest,包含三個字段:

2.為新增的表tbtest中增加資料並確認插入的資料:

3.在unique列上插入一條違背該約束的資料,mysql會中斷操作並提示出錯資訊:

insert intotbtest(id,title,content) 

values(3,'sunday','aha,todayis sunday!');

4.在insert語句中增加關鍵字ignore,當解析發現該語句違背了unique約束,mysql不會嘗試去執行這條語句,自然也不會返回出錯資訊。這樣當有很多的insert語句需要順序執行的時候,關鍵字ignore的加入就會使操作變得十分的簡單,他可以保證無論哪乙個insert語句中碰到這種重複鍵值時都會跳過它,執行下乙個的insert,這樣就不會出現放棄或中斷insert操作的情況。

insert ignore intotbtest(id,title,content) 

values(3,'sunday','aha,todayis sunday!');

5.利用了ignore可以忽略這些重複鍵值的操作,如果當很多insert語句順序執行的目的是當發現存在重複鍵值就進行相應的更新舊記錄操作的時候,我可以利用onduplicate key update從句來實現,從而制定新值:

6.檢視結果。原來的wednesday已經被update為sunday了!

MySQL列型別和列上約束

1.常用sql命令 新增資料 insert into 表名 values 刪除資料 delete from 表名 刪除所有的記錄行,慎用!delete from 表名 where 列 值 刪除滿足條件的行 修改資料 update 表名 set 列 值,列 值 刪除所有記錄行,慎用 update 表名...

mysql中的key和UNIQUE關鍵字

mysql中的key和unique關鍵字 create table testtable id int key,使用key關鍵字 email varchar 50 unique,使用unique關鍵字 tel varchar 11 檢視表結構 檢視建立表的sql語句 從上面的建立表的sql語句,可以看...

LoadRunner中Unique引數屬性

loadrunner中unique引數屬性 在loadrunner中進行引數化時,parameter的取值設定有以下相關引數 取值方式 sequence 順序 random 隨機 unique 唯一 改變 更新 取值的時機 each iteration 每次迭代 each occurrence 每次...