我有以下trigger
CREATE TRIGGER Insert_Orders BEFORE INSERT ON `Orders`
FOR EACH ROW BEGIN
INSERT INTO Payments (RestaurantPaymentInVAT, VATID) VALUES (
(SELECT Get_RestaurantPaymentInVAT(NEW.`OrderID`)), 1);
END $$
但是,表结果窗口中的payments.RestaurantPaymentInVAT
不会显示任何非空结果。全部都是null
。但是:
当我将其作为独立查询进行测试
SELECT Get_RestaurantPaymentInVAT(NEW.`OrderID`)
它给出正确的值。
我在做什么错了?
答案 0 :(得分:1)
我假设OrderID
被定义为自动递增。由于您使用的是BEFORE INSERT
触发器,因此OrderID
确实为NULL,因为尚未为其分配值。插入记录后,它将获得一个值。尝试更改为AFTER INSERT
触发器,或显式提供OrderID
的值。那应该解决它。