是否可以在语句*中获取正在插入*的行的ID?

时间:2014-07-18 22:39:38

标签: php mysql sql

我想让我上传的图片将其所属行的ID作为名称(例如42.jpg)以确保唯一性。

是否可以在查询中间获取此信息?或者在更新行之后我是否必须获取ID?

2 个答案:

答案 0 :(得分:3)

您可以先插入一个空行(带有null图片和文件名。)您可以使用LAST_INSERT_ID()检索上次插入的ID。

之后,您可以根据ID更新包含图像和文件名的行。

答案 1 :(得分:0)

如果您正在插入的表中的id是AUTO_INCREMENT列...否,则在语句执行期间,自动分配的值不可用。当BEFORE INSERT触发器被触发时,该值不可用。

分配给该行的值仅在 INSERT语句完成后才可用

成功插入后,SELECT LAST_INSERT_ID()(等效库函数)可以检索分配的值。

作为另一种选择,您可以考虑使用带有AUTO_INCREMENT列的单独表和LAST_INSERT_ID来模拟Oracle序列对象。如果在执行INSERT之前将其作为唯一ID,则可以在INSERT中提供该值。