我有一个非常简单的过程,可以对多行执行更新。他们是否可以遍历每个更新行的插入ID?
BEGIN
UPDATE testTable set testValue = 2
where username = inputUser and flag = 1;
//for each update performed, insert LAST_INSERT_ID() into tableB
END
这可能吗?如果是这样,你能引导我朝着正确的方向前进吗?
答案 0 :(得分:0)
LAST_INSERT_ID只为您提供最后一个ID。您可以在没有循环的情况下执行多次插入您可以使用SELECT查询的输出并插入所需的表。你可以这样做:
BEGIN
UPDATE testTable set testValue = 2
where username = inputUser and flag = 1;
INSERT into tableB (column1, column2)
SELECT column1, column2 FROM testTable
WHERE username = inputUser and flag = 1;
END
例如:
User (username, password)
UserLoginLog (username, last_log_in_date)
INSERT INTO UserLogInLog (username, last_log_in_date)
SELECT username, NOW()
FROM User
WHERE username = "JohnDoe"