MySQL触发器语法

时间:2014-10-24 18:00:42

标签: mysql

我是MySQL的新手。到目前为止,我认为我很了解构建表和各种查询,但我遇到了触发器的主要问题。我99%肯定这只是语法问题。这是一项家庭作业,所以我不是在寻找答案,而是一些如何进行的建议。我有这张桌子:

PC(model int,speed decimal,ram int,hd int,price decimal)

我的问题是:在更新PC的价格时,检查没有价格较低的PC,速度相同。

我目前有这个:

create trigger updatePrice
    -> before update of price on PC
    -> for each row
    -> begin
    -> if new.price>old.price and new.speed=old.speed then
    -> set new.price=old.price;
    -> end if;
    -> end;$$

我收到此错误:

ERROR 1064 (42000): 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 'of price on PC for each row begin
if new.price>old.price and new.speed=old.speed' at line 2

我认为这是“之前”部分让我失望,因为如果我使用旧的和新的它应该在之后,但这也不起作用(得到相同的错误)。

create trigger updatePrice 
after update of price on PC 
for each row 
begin 
if new.price>old.price and new.speed=old.speed then 
set new.price=old.price; 
end if; 
end;$$

我不确定如何解决此错误。任何的意见都将会有帮助。提前谢谢!

0 个答案:

没有答案