我有两个变量 1.inserted_user_id, 2.inserted_address_id
在我的 MySQL 程序中。
我需要在插入查询和选择查询中使用它们。我正在尝试类似的事情
insert into user_new(name, company, email, customer_id) select name, company, email, inserted_user_id from user_old;
insert into user_address_map(address_id, user_id) select inserted_user_id,inserted_address_id ;
有两个语句不起作用。如何在上述sql语句中使用过程变量的值?
最佳答案
首先进行选择以获取所有信息:(您需要先声明这些变量)
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();
然后用您的参数更新此行
UPDATE user_new
SET customer_id = inserted_user_id
WHERE id = out_param;
关于mysql - 如何在 MySQL 中的 select 和 insert 查询中使用过程变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20968034/