我想将一个表复制到两个不同的表中
为此我写了以下程序。
我想连接 temp1 表的 fname 和 lname,并希望放入另一个带有字符串值“Person”的表原子。
在表原子插入值后,我想要插入 id,并使用此插入的 id(g_id
) 将数据插入到新表用户。
DELIMITER //
CREATE PROCEDURE cpy()
BEGIN
insert into atom values(name,type) select concat(temp1.fname,temp.lname), 'Person' from temp1;
SET g_id= LAST_INSERT_ID();
insert into user(id,mobno,password,fname,lname,mailid,dob,gender)
select g_id,mobno,password,fname,lname,mailid,dob,gender from temp1;
END //
DELIMITER ;
此代码无法正常工作,显示错误
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'selec
t temp1.fname, 'Person' from temp1;
SET g_id= LAST_INSERT_ID();
insert int' at line 3
最佳答案
尝试:
DELIMITER //
CREATE PROCEDURE cpy()
BEGIN
DECLARE g_id INT;
insert into atom /*values*/ (name,type)
select concat(temp1.fname,temp.lname), 'Person' from temp1;
SET g_id = LAST_INSERT_ID();
insert into user (id,mobno,password,fname,lname,mailid,dob,gender)
select g_id,mobno,password,fname,lname,mailid,dob,gender from temp1;
END//
DELIMITER ;
关于mysql - 将一个表复制到另外两个表的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34309376/