如何在MySQL中选择和插入查询中使用过程变量?

时间:2014-01-07 09:29:55

标签: mysql sql stored-procedures mysql-workbench

我有两个变量 1. inserted_user_id, 2. inserted_address_id

在我的MySQL程序中。

我需要在插入查询和选择查询中使用它们。我正在尝试像

这样的东西
  

插入user_new(name,company,email,customer_id)选择名称,   公司,电子邮件,来自user_old的inserted_user_id;

     

插入user_address_map(address_id,user_id)选择   inserted_user_id,inserted_address_id;

有两个陈述不起作用。如何在上面的sql语句中使用过程变量的值?

1 个答案:

答案 0 :(得分:1)

首先选择一个以获取所有信息:(您需要先声明这些变量)

SELECT name, 
       company, 
       email, 
INTO   varname, varcompany, varemail 
FROM   user_old 

然后将其用于插入

INSERT INTO user_new 
            (name, 
             company, 
             email, 
             customer_id) 
VALUES      (varname, 
             varcompany, 
             varemail, 
             inserted_user_id); 

修改 首先插入Selected值并获取插入行的id

INSERT INTO user_new 
            (name, 
             company, 
             email) 
SELECT name, 
       company, 
       email 
FROM   user_old 

SET out_param = last_insert_id(); 

然后用你的param

更新这一行
UPDATE user_new 
SET    customer_id = inserted_user_id 
WHERE  id = out_param;