触发器不在表中插入值

gojuced7  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(316)

我有以下几点 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)

它给出了正确的值。
我做错什么了?
uajslkp6

uajslkp61#

我是这么想的 OrderID 定义为自动增量。因为你用的是 BEFORE INSERT 触发, OrderID 确实为空,因为尚未为其赋值。它将在插入记录后获得一个值。试着换一个 AFTER INSERT 触发器,或显式提供 OrderID . 那应该会解决的。

相关问题