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)文章
mysql存儲過程 游標(biāo) 循環(huán)使用介紹
今天分享下自己對于Mysql存儲過程的認(rèn)識與了解,這里主要說說大家常用的游標(biāo)加循環(huán)的嵌套使用2012-11-11
超詳細(xì)匯總21個值得收藏的mysql優(yōu)化實踐
這篇文章主要分享的是超詳細(xì)匯總21個值得收藏的mysql優(yōu)化實踐,對正在學(xué)習(xí)的同學(xué)有一定的參考價值,需要的同學(xué)可以參考一下2022-01-01

