簡體   English   中英

MySQL LOAD DATA放入兩個相關表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM