【发布时间】:2022-11-28 16:52:42
【问题描述】:
我正在学习 MySql 数据库。我有两张这样的桌子 服务表(服务ID(PK),..,费用) 交易表(交易ID(PK),服务ID(FK),...,费用) 我写了一个产品来将数据插入 TransactionTable:
CREATE DEFINER = 'root'@'localhost'
PROCEDURE bbet.Proc_transactiontable_CreateTransaction(IN userID varchar(36),
IN serviceID varchar(36),
...,
IN amountMoney float
)
BEGIN
SELECT @fee = s.Fee FROM servicetypetable s WHERE s.ServiceID = serviceID;
INSERT INTO transactiontable (TransactionID, ServiceID,..., Fee, TotalMoney, ModifiedDate)
VALUES (UUID(), serviceID, amountMoney,..., @fee, amountMoney * (1 - @fee), NOW());
END
我想从 ServiceTable 的 Fee 列中引用 produce 中的数据,但在这种情况下 @fee 为 null。 如何从 ServiceTable 的 Fee 列中引用 produce 中的数据?
【问题讨论】:
-
SELECT @fee = s.Fee ..比较变量值和列值并根据值返回 0/1/NULL。如果要将s.Fee存储到变量中,则使用 SELECT INTO.. 但更合理的是使用单个 INSERT .. SELECT,而无需中间变量。
标签: mysql