基本上,我正在尝试更新一个表,并在发生某些更改的情况下将更改后的行的唯一ID保存在其他表中(以及其他一些信息)。
它与LAST_INSERT_ID()几乎是相同的原理,但对于更新,不能插入。我在Internet上搜索,得到的最好的是以下声明:
SET @update_id := NULL;
UPDATE friendships SET status = ?, id = (SELECT @update_id := id)
WHERE (from_user = ? AND to_user = ?) OR (to_user = ? AND from_user = ?);
INSERT INTO actions(user_id, code, foreign_id) VALUES(?, ?, SELECT @update_id);
所有这些陈述都一起传递给PDO准备执行功能。我没有返回错误,但是我更新了第一个表,第二个表中未插入任何内容。
@update_id应该在第一个查询中保留要更改的行的ID,以便在第二个查询中使用。
我不能在第一个表上使用触发器来自动更新第二个表,因为我必须在第二个表中插入“代码”,并且不能在第一个查询中传递它(因为未在第一个表中使用或插入它) )。
尽我所能解释情况。.希望你能理解我,也能帮助我
在此先感谢
有2种方法可以插入INSERT ... SELECT和INSERT..VALUES,不要混合使用,在上一个查询中删除SELECT
INSERT INTO actions(user_id, code, foreign_id) VALUES(?, ?,@update_id);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句