2012-04-21 87 views
3

如果我運行插入查詢,但由於重複鍵錯誤而失敗,有沒有辦法獲得其主鍵而不做另一個選擇?獲得DUPLICATE KEY錯誤後的主鍵?

基本上:

INSERT INTO tbl (field) VALUES ('myvalue') 

此失敗,因爲已經存在與ID的記錄:1個字段:myvalue的。

現在我想知道ID:1沒有做另一個查詢:

SELECT id FROM tbl WHERE field = 'myvalue' 

是它不可能性?

+1

你怎麼了'ID:1'價值?它是默認值嗎?你不應該有'AUTO_INCREMENT'嗎? – Halcyon 2012-04-21 15:14:39

+2

您可能過多地匿名了SQL。我沒有看到第一個查詢會如何導致主鍵錯誤,除非'field'(而不是'id')是被鍵入的字段。 – 2012-04-21 15:15:25

+0

字段是唯一的,當然是像ID:X – dynamic 2012-04-21 15:22:14

回答

0

每個庫都有一個規定來獲取插入的行的id。

一樣:簡單mysql_query()使用mysql_insert_id()後以檢索最後插入的行的id

Check this link

編輯:

請檢查,如果您已經定義了唯一索引field列。

如果是的話,那麼你不能在列field

+0

mysql_insert_id只有在查詢成功插入,根據OP的問題,查詢插入失敗 – Dhiraj 2012-04-21 15:23:16

+0

mysql_insert_id doenst'工作時有一個重複的鍵錯誤 – dynamic 2012-04-21 15:23:26

+0

但如何查詢失敗?他沒有提供該ID,以致它會給出重複的字段錯誤。 – 2012-04-21 15:30:36