小编43r*_*rld的帖子

创建一个MySQL存储过程以更新记录

我正在转换所有现有的MSSQL数据库,并且存储过程卡在需要更新现有记录的新存储过程上。一旦将记录插入数据库并成功发送了电子邮件(或至少已传递给SMTP服务器),便从Web表单调用该过程。

我已经在MSSQL中运行了很长时间,但是正在尝试将其转换为MySQL。我要传递3个变量-一点表示已发送电子邮件,一个字符串指示已使用哪个SMTP服务器发送电子邮件,以及一个唯一的记录ID,因此我将知道要更新的记录。我还将日期和时间添加到另一个字段中,以了解该过程何时运行。

我得到了以下内容,但始终收到错误消息“#1064-您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以在第7行的''附近使用正确的语法-但我没有在第7行上看不到任何东西-至少在我看来。

我要使用的代码是:

CREATE PROCEDURE `sp_Test`(
  `emailSent_In` BIGINT UNSIGNED,
  `emailTransport_In` VARCHAR(100),
  `formSecret_In` VARCHAR(32)
)
BEGIN
  SET @`query` := CONCAT('UPDATE ',`tbl_JustSayThanks`,' 
  SET `emailSent` = `emailSent_In`,
  `emailTransport` = ',`emailTransport_In`,',
`emailSentDate` = NOW()
    WHERE `formSecret` = ', `formSecret_In`, '');
  PREPARE `stmt` FROM @`query`;
  EXECUTE `stmt`;
       @`query` := NULL;
  DEALLOCATE PREPARE `stmt`;
END//
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

仅供参考,我使用的是基于wchiquito先前提供的答案的CONCAT,并将最终传入表名。但是,我想先简化一下它,然后再去那里。

mysql stored-procedures

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

mysql ×1

stored-procedures ×1