我有以下语句将一个表(帖子)中的值插入到另一个表(对话)中:
INSERT INTO conversations (subject, user_id, notify_me, invite_only, real_name_only, max_post_length, last_updated_at, created_at, updated_at)
SELECT subject, user_id, notify_me, invite_only, real_name_only, max_post_length, thread_updated_at, created_at, updated_at FROM posts WHERE ancestry IS null;
每次插入后,我想更新 posts
的 conversation_id
列以指向新插入的 conversation
行。
实现这一目标的最佳方法是什么?
最佳答案
我认为你需要的是一个触发器:
DELIMITER $$
CREATE TRIGGER AFTER INSERT ON `conversations` FOR EACH ROW
BEGIN
UPDATE posts
SET posts.conversation_id = NEW.Id
WHERE
posts.subject = NEW.subject
AND posts.user_id = NEW.user_id
AND posts.created_at = NEW.created_at;
END$$
关于mysql - 更新 INSERT INTO... SELECT 上的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9200311/