带有mysql参数的存储过程

时间:2014-03-19 10:02:25

标签: mysql

create procedure insert_income(@title varchar(45),@category varchar(45),@amount float,@date `datetime,@type varchar(45))
as 
begin
  declare @id int(11)
  declare @bal int(11)
  set @id= select max(id) from income;
  set @bal=select balance from income where id=@id;
  if(@category='INCOME')
    begin
      set @bal=@bal+@amount
      insert into income values(@title,@date,@category,@amount,@bal,@type)
    end
  else
    begin
      if(@category='EXPENSES')
        begin
        set @bal=@bal-@amount
        insert into income values(@title,@date,@category,@amount,@bal,@type)
        end
    end
  end

我已经编写了Microsoft SQL SERVER 2008的程序,现在我需要在MYSQL中编写它

1 个答案:

答案 0 :(得分:0)

建议更改:将其导出到MySQL数据库

  • 如果要将多个语句作为存储的一部分执行 过程,定义delimiter之类的自定义delimiter // 发现默认值时,引擎不会执行语句 声明终止符;
  • 删除过程输入参数的@限定符。
  • 所有代码正文必须包含在begin - end块中。它是 如果可执行语句的数量是单个,则可选。
  • 必须使用默认的语句设置每个可执行语句的结尾 终结者;
  • 所有if条件必须在条件之后具有then子句。
  • else ifelseif不同。对于每个额外if也 应该以{{1​​}}结尾。
  • 所有end if;块必须以if
  • 结尾
  • 除非作用域,否则特定于块或范围的end if; - begin是可选的 要在该代码块中声明的变量。
  • 现在将end重置为默认值delimiter

请参阅