同時SQL查詢我有一個奇怪的問題:限制爲一個用戶
基本上,我開發了一個PHP的形式,當由用戶提交表單將proccess具有多個值的INSERT查詢:
INSERT INTO tbl_name
(id, colB, colC)
VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?) [,...]
到目前爲止沒有問題。問題是,一對夫婦的原因(不相關)我必須手動插入,我要去這個查詢之前插入所以我打算也讓這個查詢的行的ID:
SELECT MAX(id) FROM tbl_name WHERE id < x
所以我可以把id從哪裏開始我的查詢。
指定查詢將比普通查詢花費的更多,因爲它們是外部數據庫中的查詢,所以INSERT查詢大約需要2-3s。
的問題是:
如果一個用戶將要提交表單,他取參考ID,例如45
然後在插入查詢進行處理:
INSERT INTO tbl_name
(id, colB, colC)
VALUES (45, 2, 2), (46, 5, 7), (47, 1, 4) [,...]
但是插入期間查詢另一個用戶提交表單,並且他將作爲處理另一個用戶的行的ID的一個ID作爲參考ID。
我該如何避免這個問題?我想爲一個用戶限制併發的sql查詢,我只是爲網站使用,但我不知道如何去做。還有其他解決方案?或者,也許MySQL已經有這個問題的預防?謝謝。
您是否擁有用戶的唯一ID,並且可以更改表格模式? – cgTag
使用交易,然後下一個用戶將不會做任何事情,直到當前用戶完成。 –
是的,我有一個獨特的ID,我可以改變它。這是一個關於用戶項目的表格,並且由於我正在從網站處理它,所以我必須將行ID與已在其中的其他行ID分開。 – Keaire