我有以下几点 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
)
它给出了正确的值。
我做错什么了?
1条答案
按热度按时间uajslkp61#
我是这么想的
OrderID
定义为自动增量。因为你用的是BEFORE INSERT
触发,OrderID
确实为空,因为尚未为其赋值。它将在插入记录后获得一个值。试着换一个AFTER INSERT
触发器,或显式提供OrderID
. 那应该会解决的。