mysql - 如何在 MySQL 中的 select 和 insert 查询中使用过程变量?

标签 mysql sql stored-procedures mysql-workbench

我有两个变量 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/

相关文章:

MySQL - 寻找接近匹配

php - 如何在PHP中动态创建具有多个字段的表

sql-server - 在 MyBatis 中调用带有更新和结果集的过程

php - 使用日期时间获取结果

上传后 CSV 文件中的 PHP 格式编号

mysql - 生成 10 个随机 id 数字以字符串形式形成一个表

sql - 行间相减

带有 IF/THEN/ELSE 的 MySQL 存储过程

sql - 带有 OUT 参数的 PostgreSQL 函数和带有 TABLE 结果的 PostgreSQL 函数之间有任何形式上的区别吗?

php - 如何从 php 脚本增加一个 sql 数据库