Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql将数据从一个表拆分为两个表,并保留映射(关联)_Mysql_Insert_Associations_Primary Key - Fatal编程技术网

mysql将数据从一个表拆分为两个表,并保留映射(关联)

mysql将数据从一个表拆分为两个表,并保留映射(关联),mysql,insert,associations,primary-key,Mysql,Insert,Associations,Primary Key,假设我有一个名为Students的表,表中列有姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、名称、家庭电话、工作电话 我想从Students表中选择数据并插入到2个表中,例如, 查询=>列Id、姓名、手机、电子邮件 注册=>列Id、查询Id、姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、指定、家庭电话、工作电话 如何使用查询表中正确的id值填充登记表中的查询id?用于获取上次插入查询的id INSERT INTO inquiries (name, mobi

假设我有一个名为Students的表,表中列有姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、名称、家庭电话、工作电话

我想从Students表中选择数据并插入到2个表中,例如, 查询=>列Id、姓名、手机、电子邮件 注册=>列Id、查询Id、姓名、手机、电子邮件、首选课程、首选学校、性别、年龄、地址、资格、指定、家庭电话、工作电话

如何使用查询表中正确的id值填充登记表中的查询id?

用于获取上次插入查询的id

INSERT INTO inquiries (name, mobile, ...

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

大容量移动的另一种方法是添加一个临时列来保存旧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;

.

@beck03076添加了一个带有示例的SQLfiddle。没有。。。听我在Students表中有10000行,我将运行INSERT进入查询选择null,null,fname,lname,null,concatemail,,email2,null,phone,null,mobile,null,null,now,null FROM Students;如何解决此问题?我希望查询ID从此查询表映射到注册表。我是否应该编写存储过程,为Students表和每个记录创建一个游标insert into inquiry,然后使用last_insert_id插入enrollment..???@beck03076最简单的可能是执行一个逐行执行的存储过程,另一种可能是在查询中临时添加一列'oldid'以进行映射,并执行类似插入查询的操作选择null、null、fname、lname、null、concatemail、email2、null、phone、null、mobile、null、null、now、null、来自学生的id,然后插入注册查询\u id、姓名。。。从查询a中选择a.id,其中a.oldid=students.id,'myname'。。。,然后删除临时列。