【发布时间】:2020-12-24 20:55:40
【问题描述】:
我需要将值插入多个表,其中第一个表(用户)的主键 (id) 是后续表(电子邮件等)的外键 (user_id)。
我在 MySQL Workbench 中制定了以下查询,它在那里工作得非常好。但是,当我在正在开发的网站表单的上下文中运行它时,我不断收到以下行的语法错误消息:SET @nameID = LAST_INSERT_ID();
INSERT INTO users (first_name, last_name)
VALUES('John', 'Doe');
SET @userID = LAST_INSERT_ID();
INSERT INTO email (user_id, email)
VALUES(@userID,'johndoe@email.com');
INSERT INTO phone_number (user_id, phone_number)
VALUES(@userID, 4546254758);
我花了一些时间试图找出问题所在,但到目前为止还没有找到答案。任何帮助将不胜感激。
编辑:更新代码以表明“多个”是指两个以上。
【问题讨论】:
-
考虑使用 NEW.ID 而不是 last_insert_id 的插入后触发器(假设 ID 是用户中的 auto_increment 列)。
标签: mysql variables set last-insert-id