唉,你不会分句么? 每个语句结束用 ; 也就是说, UPDATE 和 END 前面的那个分号要保留的 另外,如果你用的是 mysql 客户端,那么最前面要一句 delimiter $$ 最后面的 END 要加 $$ 然后最后面再国一行 delimiter ; 还有一点,你这个是 sql server 改过来的么?在 mysql 的触发器中,没有 inserted 这个逻辑表
create table if not exists putin( `进货编号` varchar(10), `进货数量` int ); create table if not exists warehouse( `进货编号` varchar(10), ·库存数量· int );create trigger if not exists tput after update on putin for each row BEGIN select @no:=`进货编号`,@cnt:=`进货数量` from NEW; UPDATE warehouse set ·库存数量·=·库存数量·+@cnt where `进货编号`=@no; end;这样能过了
create table if not exists putin( `进货编号` varchar(10), `进货数量` int ); create table if not exists warehouse( `进货编号` varchar(10), ·库存数量· int );create trigger if not exists tput after update on putin for each row BEGIN select @no:=`进货编号`,@cnt:=`进货数量` from NEW; UPDATE warehouse set `库存数量`=`库存数量`+@cnt where `进货编号`=@no; end;
也就是说, UPDATE 和 END 前面的那个分号要保留的
另外,如果你用的是 mysql 客户端,那么最前面要一句
delimiter $$
最后面的 END 要加 $$
然后最后面再国一行
delimiter ;
还有一点,你这个是 sql server 改过来的么?在 mysql 的触发器中,没有 inserted 这个逻辑表
`进货编号` varchar(10),
`进货数量` int
);
create table if not exists warehouse(
`进货编号` varchar(10),
·库存数量· int
);create trigger if not exists tput
after update on putin for each row
BEGIN
select @no:=`进货编号`,@cnt:=`进货数量` from NEW;
UPDATE warehouse set ·库存数量·=·库存数量·+@cnt where `进货编号`=@no;
end;这样能过了
`进货编号` varchar(10),
`进货数量` int
);
create table if not exists warehouse(
`进货编号` varchar(10),
·库存数量· int
);create trigger if not exists tput
after update on putin for each row
BEGIN
select @no:=`进货编号`,@cnt:=`进货数量` from NEW;
UPDATE warehouse set `库存数量`=`库存数量`+@cnt where `进货编号`=@no;
end;