我正在尝试了解有关触发器的更多信息。在设置订单表时
CREATE TABLE orders
(
id INT unsigned not null auto_increment,
tag INT unsigned not null,
entered datetime default current_timestamp,
completed boolean not null default false,
payed boolean not null default false,
payDate date,
pickedUp boolean not null default false,
pickUpDate date,
workType enum('job0', 'job1', 'Custom') not null,
primary key (id)
)
我的目标是,如果订单在下单时付款,则将 payDate 值设置为curdate()
条目中的值,如果尚未付款,则将其留空(默认)
我尝试了多种措辞来触发,但这是最终的结果:
CREATE TRIGGER payDate_onEnter
BEFORE INSERT ON orders
FOR EACH ROW
BEGIN
IF new.payed is TRUE then
new.payDate := curdate();
END IF;
END;
MySql 工作台告诉我:
new.payDate := curdate();
->“.”在此位置无效,需要一个标识符- final
END;
-> 在此位置无效,预期为 EOF ....
我查了很多网站,问了很多问题,包括这个
请帮我理解哪里出了问题
不需要扳機。
小提琴