mysql - 将一个表复制到另外两个表的存储过程

标签 mysql

我想将一个表复制到两个不同的表中 为此我写了以下程序。 我想连接 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/

相关文章:

php - MySQL:通过单词搜索缩短查询时间

mysql - 在表中使用 MySQL SUM 函数来填充列

mysql - 测验布局改进

MySQL union and sum 两个表

c# - Entity Framework 6 和 mysql 的问题

php - 对我在用 PHP 运行的 Web 服务器中缓冲数据有什么建议吗?

php - 获取 MySQL 中最后 X 个日期数量

mysql - 根据与另一个表不同的选择从表中选择

python - sqlalchemy + mysql,增量键重用

mysql - 通过应用特定过滤器来查询和分组数据