2014-02-19 30 views
0

大家好我有以下查詢這工作得很好,但我知道需要在插入表中生成的唯一ID添加到目標表更新源表到用mysql

insert into claims.third_party(tp_names,tp_insurer,tp_registration) 
select c.tpnames,c.tpinsurers,c.tpregistration from claims as c; 

所以換句話說我需要返回唯一標識並將其添加到源表中創建一個外鍵鏈接

回答

0

您可以使用LAST_INSERT_ID()獲取最後一個自動增量值。

SELECT LAST_INSERT_ID();

http://dev.mysql.com/doc/refman/5.6/en/information-functions.html#function_last-insert-id

UPDATE:

使用ROW_COUNT()一起LAST_INSERT_ID(),您將有生成的密鑰的範圍。

[LAST_INSERT_ID(),(LAST_INSERT_ID()+ ROW_COUNT())]

+0

真實的,但將只對1個記錄我讀超過8000個工作,需要它,因爲它讀取每一個自動更新源表,有一種感覺,我需要使用foreach或其他東西,但沒有線索如何實現它 –

+0

follwed您提供的鏈接,以防萬一,並遇到以下 –

+0

重要 如果您插入多行使用單個INSERT語句, LAST_INSERT_ID()僅返回爲第一個插入行生成的值。這樣做的原因是可以輕鬆地再現針對其他服務器的相同INSERT語句。 –