在MySQL查询中,在我们执行LOAD DATA语句后,是否可以获取最后插入的ID以用于其他表的LOAD DATA?一般来说,是否可以对2个相关表使用LOAD DATA?
答案 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());
我们总是可以使用此函数
获取最后插入的idmysql_insert_id();
所以我们可以通过这种方式将id移动到另一个表
$last_id = mysql_insert_id();
mysql_query("INSERT INTO mytable2 (uid) VALUES('".$last_id."')") or die(mysql_error());