Mysql添加聯(lián)合唯一索引及相同數(shù)據(jù)插入報錯問題
添加聯(lián)合唯一索引及相同數(shù)據(jù)插入報錯
1.添加聯(lián)合索引
alter table "表名" add unique index(`字段1`,`字段2`)
2.此時如果在插入相同的數(shù)據(jù)會報錯
可以使用 no duplicate key update 解決相同數(shù)據(jù)不存儲,不會報錯
insert into "表名" (`name`,`age`,`time`)values('zhangsan','18','2001:10:10') on duplicate key update `name`=values(`name`),`age`=values(`age`)
加了唯一索引,但數(shù)據(jù)還是有重復(fù)的,原來如此
今天剛創(chuàng)建了一個表,為訂單號創(chuàng)建了唯一索引。
在測試同學(xué)測試的過程中,看了一下數(shù)據(jù),竟然有重復(fù)訂單號?
怎么想都想不明白,問了另一個大牛,他告訴我:
因為分庫分表了。唯一鍵只能保證一個庫中不重復(fù),而不同庫,無法限制。
我分庫用的是平臺ID,分表用的是訂單號,我看了一下那兩條數(shù)據(jù),果然,平臺ID不一樣,那么他們有可能不在一個庫里。
大牛說:你用同一個平臺ID insert一下,我試了一下,果然插入不進(jìn)去。
我就說嘛,數(shù)據(jù)庫層是最底層的限制了,如果再限制不住,那還有什么可靠性可言呢?
嗯,大牛就是大牛。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Navicat連接虛擬機(jī)mysql常見錯誤問題及解決方法
這篇文章主要介紹了Navicat連接虛擬機(jī)mysql常見錯誤問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11MySQL索引優(yōu)化之適合構(gòu)建索引的幾種情況詳解
我們知道正確的建立索引可以加快數(shù)據(jù)庫的查詢,但是如果索引建立不當(dāng),或者隨意的建立過多索引不僅不會提升數(shù)據(jù)庫的效率,反而在進(jìn)行數(shù)據(jù)更新操作的時候需要耗費系統(tǒng)資源對索引進(jìn)行維護(hù),同時占用大量的存儲空間來對索引進(jìn)行存儲,本文主要講述在哪些情況下適合建立索引2022-07-07MySQL修改表結(jié)構(gòu)操作命令總結(jié)
這篇文章主要介紹了MySQL修改表結(jié)構(gòu)操作命令總結(jié),包含如刪除列、添加列、修改列、添加主鍵、刪除主鍵、添加唯一索引、添加普通索引等內(nèi)容,需要的朋友可以參考下2014-12-12Django創(chuàng)建項目+連通mysql的操作方法
這篇文章主要介紹了Django創(chuàng)建項目+連通mysql的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03MySQL 數(shù)據(jù)庫 like 語句通配符模糊查詢小結(jié)
這篇文章主要介紹了MySQL 數(shù)據(jù)庫 like 語句通配符模糊查詢小結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10