如果我運行插入查詢,但由於重複鍵錯誤而失敗,有沒有辦法獲得其主鍵而不做另一個選擇?獲得DUPLICATE KEY錯誤後的主鍵?
基本上:
INSERT INTO tbl (field) VALUES ('myvalue')
此失敗,因爲已經存在與ID的記錄:1個字段:myvalue的。
現在我想知道ID:1沒有做另一個查詢:
SELECT id FROM tbl WHERE field = 'myvalue'
是它不可能性?
如果我運行插入查詢,但由於重複鍵錯誤而失敗,有沒有辦法獲得其主鍵而不做另一個選擇?獲得DUPLICATE KEY錯誤後的主鍵?
基本上:
INSERT INTO tbl (field) VALUES ('myvalue')
此失敗,因爲已經存在與ID的記錄:1個字段:myvalue的。
現在我想知道ID:1沒有做另一個查詢:
SELECT id FROM tbl WHERE field = 'myvalue'
是它不可能性?
這裏是一個提供了四種不同的方式來處理這個鏈接插入重複: http://mikefenwick.com/blog/insert-into-database-or-return-id-of-duplicate-row-in-mysql/
每個庫都有一個規定來獲取插入的行的id。
一樣:簡單mysql_query()
使用mysql_insert_id()
後以檢索最後插入的行的id
編輯:
請檢查,如果您已經定義了唯一索引field
列。
如果是的話,那麼你不能在列field
你怎麼了'ID:1'價值?它是默認值嗎?你不應該有'AUTO_INCREMENT'嗎? – Halcyon 2012-04-21 15:14:39
您可能過多地匿名了SQL。我沒有看到第一個查詢會如何導致主鍵錯誤,除非'field'(而不是'id')是被鍵入的字段。 – 2012-04-21 15:15:25
字段是唯一的,當然是像ID:X – dynamic 2012-04-21 15:22:14