我正在嘗試使用產品說明表,並且我有一個頭部劃痕器...
我有一種方法(php)查找記錄的ID密鑰。
如果符合搜索標準不存在,它會嘗試創建該行並返回該ID。MySQL:SELECT返回沒有結果,但是INSERT引發'Duplicate Entry'錯誤
眼下,SELECT將返回零行,但具有相同值的INSERT拋出一個欺騙的錯誤。
SELECT `id`
FROM (`m3sandbox_product_description`)
WHERE `product_id` = '403466'
AND `company_id` = '5'
AND `value` = 'TERMINAL, FEMALE DISCONNECT, 6.3MM, RED; Connector Type:Female Disconnect; Insulator Color:Red; Termination Method:Crimp; Stud/Tab Size:6.35mm x 0.81mm; Wire Size (AWG):22AWG to 16AWG; Contact Material:Copper; Contact Plating:Tin ;RoHS Compliant: Yes'
LIMIT 1
。
INSERT INTO `m3sandbox_product_description` (`product_id`, `company_id`, `value`, `datetime_created`)
VALUES ('403466', '5', 'TERMINAL, FEMALE DISCONNECT, 6.3MM, RED; Connector Type:Female Disconnect; Insulator Color:Red; Termination Method:Crimp; Stud/Tab Size:6.35mm x 0.81mm; Wire Size (AWG):22AWG to 16AWG; Contact Material:Copper; Contact Plating:Tin ;RoHS Compliant: Yes', '2012-10-16T15:39:44+00:00')
事實證明,在我們共同的其他開發人員使用了完全不同的代碼庫(但類似的方法)對這種相同的DB,和他面對完全一樣的特殊障礙。
是有一些特殊的東西,我們應該做的用描述值來查詢,以確保我們的SELECT的行爲像預期的那樣?
的PK,這是自動遞增,是'id'(在這些查詢未使用)......這個表有超過'值的唯一索引','product_id'和'company_id'字段。 – mOrloff
好吧,難道你的auto_increment序列被重置?這發生在我身上幾次。你使用什麼DBMS?你有多少條記錄?您是否使用固定ID插入了任何記錄? –
@吉榮,vuurens是,也許:) ..使用實時表中的其他dev'r是,我不確定他周圍所有的經歷的細節......在我的情況,雖然,我使用「沙箱」活動表的副本和我做了** _嘗試插入行之前,我記得把ID設置爲auto_increment ...之後,auto_increment _ **是** _重置(下一個auto_increment值_currently_看起來右)......我很高興這對某人來說有點熟悉。請分享更多關於您的類似過去的經驗/解決方案...順便說一句,該表目前有近54萬行。 – mOrloff