mysql存储过程语法错误:

标签 mysql stored-procedures mysql-error-1064

我有一个 mysql 存储过程,它给了我以下错误:-

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 4 行的 'set intoffer = 'select max(offerid) from home' if(intoffer IS NULL) then set int' 附近使用的正确语法

我已将分隔符框中的分隔符设置为;。存储过程是

create procedure sp()
begin
declare intoffer int
set intoffer = 'select max(offerid) from home'
if(intoffer IS NULL) then
set intoffer=1
else
set intoffer=intoffer+1
insert into home(offerid,offerheader,offertext,offerimage,offerlink) values(intoffer,'d','d','d','d')
end;

最佳答案

存在一些语法和其他错误。试试这个代码 -

CREATE PROCEDURE sp()
BEGIN
  DECLARE intoffer INT;

  SELECT max(offerid) INTO intoffer FROM home;
  IF (intoffer IS NULL) THEN
    SET intoffer = 1;
  ELSE
    SET intoffer = intoffer + 1;
  END IF;
  INSERT INTO home (offerid, offerheader, offertext, offerimage, offerlink) VALUES (intoffer, 'd', 'd', 'd', 'd');
END

关于mysql存储过程语法错误:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9920691/

相关文章:

java - hibernate JPA 2.1 : OUT REF CURSOR in position other than first?

java - 如何在Hibernate中调用存储过程?

c# - 从 C# 中的存储过程返回多个值

php - MySQL 错误 : 1064

MySql 错误 1064 - 使用 MySQL WorkBench 创建

php - 如何在 mysql where 子句中使用 SUM?

php - 通过 CSV 文件添加数据时出错

MySQL数据库与ASP.NET全局连接

MySQL 从内部 select 语句更新多个表中列的默认值

mysql - 当我使用数字类型选择 varchar 列时会发生什么?