gpt4 book ai didi

mysql 将一张表中的数据拆分为两张表并保留映射(关联)

转载 作者:行者123 更新时间:2023-11-29 13:42:20 32 4
gpt4 key购买 nike

假设我有一个名为“学生”的表格,其中包含姓名、手机、电子邮件、首选类(class)、首选学校、性别、年龄、地址、资格、职称、家庭电话、工作电话等列

我想从 Students 表中选择数据并插入到 2 个表中,例如,查询=>(带列)ID、姓名、手机、电子邮件Enrollments =>(含列)ID、inquiry_id、姓名、手机、电子邮件、首选类(class)、首选学校、性别、年龄、地址、资格、职称、家庭电话、工作电话

如何使用查询表中的正确 id 值填充注册表中的inquiry_id?

最佳答案

使用LAST_INSERT_ID()获取最后插入的查询的 id;

INSERT INTO inquiries (name, mobile, ...

INSERT INTO enrollments (inquiry_id, name, ...)
VALUES (LAST_INSERT_ID(), 'myname', ...

A simple SQLfiddle for testing .

批量移动的另一种方法是添加一个临时列来保存旧 ID,以便您可以在第二次插入时使用正确的 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;

Another SQLfiddle .

关于mysql 将一张表中的数据拆分为两张表并保留映射(关联),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17912275/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com