更新期间执行每个上次插入ID

时间:2016-02-29 20:19:29

标签: mysql

我有一个非常简单的过程,可以对多行​​执行更新。他们是否可以遍历每个更新行的插入ID?

BEGIN
UPDATE testTable set testValue = 2 
where username = inputUser and flag = 1;

//for each update performed, insert LAST_INSERT_ID() into tableB
END
这可能吗?如果是这样,你能引导我朝着正确的方向前进吗?

1 个答案:

答案 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"