[英]if else in trigger in sql
我正在尝试使用if else语句在插入触发器之后创建。我可以在没有if else的情况下执行此操作,但是会出错。 因此,在“预订”表中,有一个列customer_id。 有一个表客户,我在其中有一列“类型”。 根据此列中的值,我想在booking_status表中添加一行,但是语法错误。 我只是学习sql,请提供帮助。
AFTER INSERT ON booking
FOR EACH ROW
IF (SELECT type FROM customer WHERE ID=customer_id) = 'not trust'
BEGIN
INSERT INTO booking_status (id, status_name, booking_id) VALUES(NEW.booking_number, 'Checking', NEW.booking_number)
END
ELSE
INSERT INTO booking_status (id, status_name, booking_id) VALUES(NEW.booking_number, 'Approved', NEW.booking_number);
您的IF
语法不正确。 当条件为真时,在执行语句之前需要THEN
,则需要END IF;
最后,您需要;
在每个语句的末尾。 当THEN
子句中只有一个语句时,您不需要BEGIN/END
。
IF (SELECT type FROM customer WHERE ID=customer_id) = 'not trust'
THEN
INSERT INTO booking_status (id, status_name, booking_id) VALUES(NEW.booking_number, 'Checking', NEW.booking_number);
ELSE
INSERT INTO booking_status (id, status_name, booking_id) VALUES(NEW.booking_number, 'Approved', NEW.booking_number);
ENDIF;
但是不需要IF
语句,可以在单个INSERT
使用IF
函数:
INSERT INTO booking_status(id, status_name, booking_id)
VALUES (NEW.booking_number,
IF((SELECT type FROM customer WHERE ID=customer_id) = 'not trust', 'Checking', 'Approved'),
NEW.booking_number);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.