数据库编码utf-8,数据库引擎myisam
sql:create trigger trg1
After insert on idi
For each row
Begin
update uk set kucun = kucun-new.num where iid = new.id;
End
报错代码:
错误
SQL 查询: CREATE trigger trg1 AFTER INSERT ON idi
FOR each
ROW 
BEGIN 
UPDATE uk SET kucun = kucun - new.num WHERE iid = new.id;MySQL 返回: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5 

解决方案 »

  1.   

    CREATE trigger trg1 AFTER INSERT ON idi
    FOR each ROW 
    UPDATE uk SET kucun = kucun - new.num WHERE iid = new.id;
      

  2.   


    create trigger tg1 before insert on idi for each row
    if new.num>10 then
    set new.num=10
    end if;
    update uk set kucun=kucun-new.num where iid=new.id那这个又是哪里出错了
      

  3.   


    create trigger tg1 before insert on idi for each row
    if new.num>10 then
    set new.num=10
    end if;
    update uk set kucun=kucun-new.num where iid=new.id那这个又是哪里出错了
      

  4.   

    delimiter //
    create trigger tg1 before insert on idi for each row
    begin
    if new.num>10 then
    set new.num=10
    end if;
    update uk set kucun=kucun-new.num where iid=new.id;
    end//

    建议看一下MYSQL官方免费手册中的存储过程语法。 否则类似问题会没完没了的。
      

  5.   


    将这段代码放到里面依然报错:delimiter //
    create trigger tg1 before insert on idi for each row
    begin
    if new.num>10 then
    set new.num=10
    end if;
    update uk set kucun=kucun-new.num where iid=new.id;
    end//报错代码:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end if; update uk set kucun=kucun-new.num where iid=new.id; end' at line 5
      

  6.   

    delimiter //
    create trigger tg1 before insert on idi for each row
    begin
    if new.num>10 then
    set new.num=10;
    end if;
    update uk set kucun=kucun-new.num where iid=new.id;
    end//