(MySQL - Coldfusion/Lucee) - 一个 MySQL 语句,多个插入 - 如何获取每个 subsubCategoryID?

(MySQL - Coldfusion/Lucee) - One MySQL Statement, Multiple Inserts - How to get EACH subsubCategoryID?

我正在将 ID 列表传递给我的插入函数。我通过一个包含多个插入的 sql 语句将 parentID 和 subcategoryID 插入到我的数据库中。这很好用。但是现在要求已经改变,现在我需要从每个插入中取回一些信息。

使用下面的代码,我添加了 SELECT last_insert_id() as subsubCategoryID 并且查询只返回了第一个插入的记录(我实际上期望只插入最后一个而不是第一个,所以这很令人惊讶)。是否有可能为每个插入取回每个子子类别 ID,或者是否需要循环插入语句并将多个插入分成不同的插入语句?

for (item in listToArray(local.formData, ",")) { 
    local.values &= "(44, " & item & "," & local.formData.userID &")," ;
}

local.values = left(local.values,len(local.values)-1) ;

local.sql = "
    INSERT INTO table (parentID, subcategoryID, userID) 
    VALUES " & local.values & "
    ; SELECT last_insert_id() as subsubCategoryID;
"
writeDump(local.sql);

我决定按原样保留原始查询(没有 SELECT last_insert_id() as subsubCategoryID),然后在最后执行查找(select 语句),这将 return子类别 ID。这将只有两个数据库连接,而不是如果我分解插入语句所需的多个数据库连接,这样我就可以在每个插入语句后附加 SELECT last_insert_id() as subsubCategoryID

** 更新 ** 根据 Ageax 在下面发表的评论,我添加此更新是为了清楚起见,以防其他人遇到这个 SO 问题...当我说 "at the end perform a look up" 我的意思是进程结束而不是查询结束 **

您应该检查存储过程。 我设想了一段带有分隔符(如管道符号)的文本,它们被分开并插入到开头 transaction/commit.