MySQL将DATA LOAD分成两个相关的表

时间:2014-01-16 20:04:02

标签: php mysql wordpress csv

在MySQL查询中,在我们执行LOAD DATA语句后,是否可以获取最后插入的ID以用于其他表的LOAD DATA?一般来说,是否可以对2个相关表使用LOAD DATA?

2 个答案:

答案 0 :(得分:1)

没有。使用LOAD DATA INFILE语法是不可能的。 (LAST_INSERT_ID()函数只返回一个值,而不是一组行的值,所以除非你插入单独的行,在这种情况下,你不会期望使用LOAD DATA INFILE插入单个行。)

解决方法(如果我理解你想要完成的事情)是使用中间表作为加载的目标。截断表(或删除并重新创建它),并使用LOAD DATA INFILE加载行。

然后,使用SQL语句从该表中提取,并插入/更新其他表。如果您没有其他唯一键,则在中间表中包含AUTO_INCREMENT id列是一种关联行的便捷方式。

答案 1 :(得分:0)

例如,如果我们运行以下insert语句:

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());