我想将一些应用程序逻辑委托给数据库,以便学习一些项目,例如触发器
我有3列名为 item_quantity,items_committed 和 items_available 。基本上,如果数量列中有5个项目,并且用户提交2个项目,则可用项目为3.我需要一个触发器来执行2列的减号功能(数量和提交)每当更新任一列并更新该行的可用列中的差异结果时
以下是我使用的触发器,但是我收到此错误'SQL错误1193:未知的系统变量'items_available'
CREATE trigger `test`.`trigger_updateitems_available` AFTER UPDATE ON items FOR EACH ROW
BEGIN
SET items_available = item_quantity - items_Committed;
END
任何帮助非常感谢
答案 0 :(得分:0)
要指定您要访问当前行的值,请使用new.<field name>
。
另外,要访问new
,您需要触发器为BEFORE UPDATE
。
CREATE trigger `test`.`trigger_updateitems_available` BEFORE UPDATE ON items FOR EACH ROW
BEGIN
SET new.items_available = new.item_quantity - new.items_Committed;
END