[英]MySQL LOAD DATA into two related tables
在MySQL查詢中,執行LOAD DATA語句后,是否可以獲取要在其他表的LOAD DATA中使用的最后插入的ID? 一般來說,是否可以將LOAD DATA用於2個相關表?
否。無法使用LOAD DATA INFILE
語法。 ( LAST_INSERT_ID()
函數僅返回一個值,而不返回一組行的值,因此,除非您要插入單個行,並且在那種情況下,您不希望使用LOAD DATA INFILE
來插入單個行。)
解決方法(如果我了解要完成的工作)是利用中間表作為負載目標。 截斷表(或刪除並重新創建表),然后使用LOAD DATA INFILE加載行。
然后,使用SQL語句從該表中提取數據,並插入/更新其他表。 如果您沒有其他唯一鍵,則在中間表中包括AUTO_INCREMENT id列是關聯行的便捷方法。
例如,如果我們運行以下插入語句:
mysql_query("INSERT INTO mytable (name,age) VALUES ('Steve',25)") or die(mysql_error());
我們總是可以使用此功能獲取最后插入的ID
mysql_insert_id();
這樣我們就可以將id移到另一個表中
$last_id = mysql_insert_id();
mysql_query("INSERT INTO mytable2 (uid) VALUES('".$last_id."')") or die(mysql_error());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.