一只平平无奇 2022-05-16 19:11
浏览 177
已结题

mysql创建触发器使用IF语句报错,如何解决?

我想在更改包厢状态state(从空闲状态到使用状态)的时候,使该包厢的销量和营业额相应增加。

我被mysql触发器的创建整不会了,使用IF语句就报错,不知道是哪儿出现问题了

相关表设计如下

包厢销量表:box_sales_volume_inf

包厢号:box_number包厢销量:count包厢销售额:sales
A013300

包厢信息表:box_inf

包厢号:box_number包厢状态:state
A01空闲
delimiter $$
CREATE TRIGGER update_count_sales AFTER UPDATE ON box_inf
FOR EACH ROW 
BEGIN
if old.state = "空闲" THEN
        UPDATE box_sales_volume_inf --更新包厢销量表操作
        set count =count+1,sales=sales+old.expense --包厢销量+1,包厢销售额+包厢固定费用
        WHERE box_sales_volume_inf.box_number=old.box_number --指定被更新的包厢的包厢号
end if;
end$$
delimiter;
报错内容

img

  • 写回答

1条回答 默认 最新

  • 一只平平无奇 2022-05-16 20:11
    关注

    解决了,update语句没加分号
    正确代码如下:delimiter $$
    CREATE TRIGGER update_count_sales AFTER UPDATE ON box_inf
    FOR EACH ROW
    BEGIN
    if old.state = "空闲" THEN
    UPDATE box_sales_volume_inf --更新包厢销量表操作
    set count =count+1,sales=sales+old.expense --包厢销量+1,包厢销售额+包厢固定费用
    WHERE box_sales_volume_inf.box_number=old.box_number; --指定被更新的包厢的包厢号
    end if;
    end$$
    delimiter;

    评论

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 修改了问题 5月16日
  • 创建了问题 5月16日