假设我有一张名为“学生”的表格,其中包含姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、职务、家庭电话、工作电话
我想从学生表中选择数据并插入到 2 个表中,例如,查询 =>(带列)ID、姓名、手机、电子邮件注册 =>(带列)ID、inquiry_id、姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、名称、家庭电话、工作电话
如何使用查询表中的正确 id 值填充注册表中的inquiry_id?
假设我有一张名为“学生”的表格,其中包含姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、职务、家庭电话、工作电话
我想从学生表中选择数据并插入到 2 个表中,例如,查询 =>(带列)ID、姓名、手机、电子邮件注册 =>(带列)ID、inquiry_id、姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、名称、家庭电话、工作电话
如何使用查询表中的正确 id 值填充注册表中的inquiry_id?
使用LAST_INSERT_ID()获取最后插入查询的 id;
INSERT INTO inquiries (name, mobile, ...
INSERT INTO enrollments (inquiry_id, name, ...)
VALUES (LAST_INSERT_ID(), 'myname', ...
批量移动的另一种方法是添加一个临时列来保存旧 id,以便您可以将正确的列用于第二次插入;
ALTER TABLE inquiries ADD COLUMN oldid INT;
INSERT INTO inquiries (..., oldid) SELECT ..., id FROM students;
INSERT INTO enrollments (inquiry_id, ...)
SELECT (SELECT id FROM inquiries WHERE students.id=oldid), ...
FROM students;
ALTER TABLE inquiries DROP COLUMN oldid;