首頁 >後端開發 >php教程 >mysql插入問題

mysql插入問題

WBOY
WBOY原創
2016-08-20 09:04:001044瀏覽

兩個使用者同時插入一條數據,
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鎖表機制

建議資料庫自己的校驗機制,就像你的說唯一約束或索引都可以,在應用能夠捕獲到資料庫的報錯信息,做相應得的說明就可以了。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn