2016-02-29 58 views
0

我有一个非常简单的过程,在多行上执行更新。他们是我可以通过每个更新行的插入ID循环的方式吗?在更新期间执行每个最后插入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

如果你是更具体的,我可以帮你多。 – Tin

回答

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"