gpt4 book ai didi

mysql - 如何将一个表中的一条记录拆分为另一个表的两条记录

转载 作者:行者123 更新时间:2023-11-29 23:46:52 24 4
gpt4 key购买 nike

根据旧数据库,我有一个名为guardiant的表,它有一个名为db_id的外键(来自student表)。表结构是这样的:

CREATE TABLE IF NOT EXISTS `guardiant` (
`db_id` varchar(100) NOT NULL,
`fg_name` varchar(100) DEFAULT NULL,
`fg_address` varchar(100) DEFAULT NULL,
`fg_tel_work` varchar(100) DEFAULT NULL,
`fg_mobile` varchar(100) DEFAULT NULL,
`fg_email` varchar(100) DEFAULT NULL,
`fg_prof` varchar(100) DEFAULT NULL,
`mg_name` varchar(100) DEFAULT NULL,
`mg_address` varchar(100) DEFAULT NULL,
`mg_tel_work` varchar(100) DEFAULT NULL,
`mg_mobile` varchar(100) DEFAULT NULL,
`mg_email` varchar(100) DEFAULT NULL,
`mg_prof` varchar(100) DEFAULT NULL,
`by` varchar(100) DEFAULT NULL,
PRIMARY KEY (`db_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

该表包含母亲和父亲的记录(父亲是fg_,母亲是mg_)。我需要将数据迁移到另一个只能包含母亲或父亲的表中。结构类似于:

CREATE TABLE IF NOT EXISTS `fsms_parent_guardian` (
`parent_guardian_id` varchar(20) NOT NULL,
`address_1` varchar(200) default NULL,
`address_2` varchar(200) default NULL,
`date_of_birth` date default NULL,
`description` varchar(250) default NULL,
`education` varchar(100) default NULL,
`email` varchar(100) default NULL,
`first_name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`middle_name` varchar(100) default NULL,
`modified_by` varchar(20) NOT NULL,
`modified_date` date NOT NULL,
`nationality` varchar(20) default NULL,
`profession` varchar(50) default NULL,
PRIMARY KEY (`parent_guardian_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

因此旧表中的一条记录应该进入新表中具有不同 ID 的两条记录。 此外,fsms_parent_guardian 表和学生表中的主键应映射到单独的表中。请告诉我解决此问题的可行方法。

最佳答案

要复制记录,您将需要两个查询,第一个查询选择 fg 记录并将它们插入到新表中,第二个查询选择 mg 记录并再次插入它们。 fg和mg的每条记录都需要用外键(ID_student)映射到student表。

关于mysql - 如何将一个表中的一条记录拆分为另一个表的两条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25872686/

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