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ù)還是有重復的,原來如此
今天剛創(chuàng)建了一個表,為訂單號創(chuàng)建了唯一索引。
在測試同學測試的過程中,看了一下數(shù)據(jù),竟然有重復訂單號?
怎么想都想不明白,問了另一個大牛,他告訴我:
因為分庫分表了。唯一鍵只能保證一個庫中不重復,而不同庫,無法限制。
我分庫用的是平臺ID,分表用的是訂單號,我看了一下那兩條數(shù)據(jù),果然,平臺ID不一樣,那么他們有可能不在一個庫里。
大牛說:你用同一個平臺ID insert一下,我試了一下,果然插入不進去。
我就說嘛,數(shù)據(jù)庫層是最底層的限制了,如果再限制不住,那還有什么可靠性可言呢?
嗯,大牛就是大牛。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Django創(chuàng)建項目+連通mysql的操作方法
這篇文章主要介紹了Django創(chuàng)建項目+連通mysql的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03MySQL 數(shù)據(jù)庫 like 語句通配符模糊查詢小結
這篇文章主要介紹了MySQL 數(shù)據(jù)庫 like 語句通配符模糊查詢小結,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10