gpt4 book ai didi

mysql - 我写了一个触发器。但我在使用 case 语句时遇到错误

转载 作者:行者123 更新时间:2023-11-29 17:56:11 25 4
gpt4 key购买 nike

触发器:

DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ `customersh`$$

CREATE
TRIGGER `customersh` AFTER UPDATE ON `customers`
FOR EACH ROW BEGIN

IF old.customer_status_id !=new.customer_status_id THEN
INSERT INTO customers_h (
status_changed_date,
status_changed_by,
loan_request_initial_id,
verification_approval_id,
) VALUES
(
old.status_changed_date,
old.status_changed_by,
(CASE WHEN old.customer_status_id IN (2,3,4) AND new.customer_status_id IN (5,7,3,4)
THEN SELECT MAX(loan_request_initial_id) FROM loan_request_initial
WHERE customer_id = old.customer_id ELSE NULL END),

old.verification_approval_id,
);
END IF;
END;
$$
DELIMITER ;

错误:

Error Code: 1064

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 'SELECT MAX(loan_request_initial_id) FROM loan_request_initial ' at line 106

请帮我解决这个错误。案例陈述可能是错误的。

最佳答案

正确检查括号

CASE WHEN old.customer_status_id IN (2, 3, 4)
AND new.customer_status_id IN (5, 7, 3, 4) THEN (
SELECT
MAX(loan_request_initial_id)
FROM
loan_request_initial
WHERE
customer_id = old.customer_id
) ELSE NULL END

关于mysql - 我写了一个触发器。但我在使用 case 语句时遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48801085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com