我希望能夠防止重複的SQL文本字段行。也就是說,如果第1行的名稱字段已被定義爲「John Smith」,我不希望它能夠添加另一個「John Smith」(與該名稱一樣常見)。防止重複的SQL條目
我試着檢查它是否存在於插入時,但問題是,如果您同時打開兩個瀏覽器窗口並單擊同時提交,他們都會檢查,檢查將清除,然後他們如果它們足夠接近,就會插入。
哦,這是在PHP網站上。
謝謝!
我希望能夠防止重複的SQL文本字段行。也就是說,如果第1行的名稱字段已被定義爲「John Smith」,我不希望它能夠添加另一個「John Smith」(與該名稱一樣常見)。防止重複的SQL條目
我試着檢查它是否存在於插入時,但問題是,如果您同時打開兩個瀏覽器窗口並單擊同時提交,他們都會檢查,檢查將清除,然後他們如果它們足夠接近,就會插入。
哦,這是在PHP網站上。
謝謝!
CREATE UNIQUE INDEX idxname ON tablename (fieldname);
添加此指標將確保fieldname
領域沒有重複的條目將被記錄到tablename
表。
您將得到第二個客戶端的MySQL錯誤。你應該在你的PHP代碼中處理這個問題,並再次提交表單(而不是顯示錯誤信息)。
其他可能性(對於更復雜的場合)是LOCK
功能。如果在檢查之前鎖定表,然後插入記錄,併發操作(在第二個瀏覽器窗口中)將會延遲,直到您釋放鎖。然後記錄將被保存,所以第二個PHP腳本將看到它並處理該sitation。
看看here,你需要獨特的。
DISTINCT
也可以用來選擇唯一的行。
...
select distinct *
from table1
...
你可以在mysql的字段中使用唯一索引嗎?然後當php做一個插入句柄重複輸入錯誤。 – Jacob 2011-03-23 22:56:05