兩個使用者同時插入一條數據,
insert into table set name='tom',num=2
insert into table set name='jack',num=2
,但是業務邏輯不允許num值重複出現。
怎麼限制mysql不讓插入重複資料?
1.新增聯合唯一索引,但是程式會報錯,感覺不可行。
有其他方法沒?
兩個使用者同時插入一條數據,
insert into table set name='tom',num=2
insert into table set name='jack',num=2
,但是業務邏輯不允許num值重複出現。
怎麼限制mysql不讓插入重複資料?
1.新增聯合唯一索引,但是程式會報錯,感覺不可行。
有其他方法沒?
使用唯一索引,在插入這個場景中使用事務處理,拋出事務提醒失敗有重複值。
程序報錯誤?
你捕獲這個對應的異常,然後返回,做一個業務性的說明就可以了。
insert ignore
不行嗎
那就是每次插入之前都得去查詢一下,表中這個num字段是否存在要插入的值;還有考慮到並發到情況。對不!要嘛用mysql事務;要嘛mysql鎖表機制
建議資料庫自己的校驗機制,就像你的說唯一約束或索引都可以,在應用能夠捕獲到資料庫的報錯信息,做相應得的說明就可以了。