我是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;$$
我不确定如何解决此错误。任何的意见都将会有帮助。提前谢谢!