Mysql 存储过程-在一个查询中插入和更新

Mysql 存储过程-在一个查询中插入和更新,mysql,database,stored-procedures,sql-update,sql-insert,Mysql,Database,Stored Procedures,Sql Update,Sql Insert,我想创建一个存储过程。我有两个数据库——一个是客户数据,另一个是折扣代码。我想为每个客户分配代码。代码只能分配一次,因此我想在分配代码后将其标记为“已使用”。代码应仅分配给那些未分配代码的客户 客户数据库: 客户ID 客户代码 1. 6f73js 2. ... ... 要创建存储过程,请执行以下操作: 创建过程@CUSTOMER_CODE INT 作为 插入客户数据数据库VALES(@CUSTOMER\u CODE) 更新数据\u折扣\u代码集状态='已使用',其中代码=@CUSTOMER\u

我想创建一个存储过程。我有两个数据库——一个是客户数据,另一个是折扣代码。我想为每个客户分配代码。代码只能分配一次,因此我想在分配代码后将其标记为“已使用”。代码应仅分配给那些未分配代码的客户

客户数据库:

客户ID 客户代码 1. 6f73js 2. ... ...
要创建存储过程,请执行以下操作:


创建过程@CUSTOMER_CODE INT
作为
插入客户数据数据库VALES(@CUSTOMER\u CODE)
更新数据\u折扣\u代码集状态='已使用',其中代码=@CUSTOMER\u代码
执行它


执行客户代码
创建过程
作为
开始
插入客户数据库(客户代码)
从数据\折扣\代码中选择代码
其中STATUS=“”
更新数据\u折扣\u代码
设置状态='已使用';
结束
去
避免在“客户代码”列中使用空格


用下划线符号替换空格。

用您正在使用的数据库标记您的问题。您的数据库管理系统是什么?我的数据库管理系统是MySQL 8.0。某些功能仍然不起作用。状态更新,但代码不分配。该列为空。
CREATE PROCEDURE <procedure-name> 
AS
BEGIN
    INSERT INTO CUSTOMERS_DATABASE (CUSTOMER_CODE)
        SELECT CODE FROM DATA_DISCOUNT_CODES
        WHERE STATUS = ' '
  
    UPDATE DATA_DISCOUNT_CODES 
    SET STATUS = 'Used';
END
Go