[英]how to get one record in a table into two records of a separate table
根據舊數據庫,我有一個名為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)映射到學生表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.