Mysql 表中的乘法触发器
我有一张salesOrderItems表:Mysql 表中的乘法触发器,mysql,triggers,Mysql,Triggers,我有一张salesOrderItems表: soItemID INT(11) PK salesOrderID INT(11) productID INT(11) cost DECIMAL(7,2) qty TINYINT(2) extendedCost DECIMAL(8,2) 通过PHP,用户将看到一个表单,以输入productID(通过下拉菜单),然后该选
soItemID INT(11) PK
salesOrderID INT(11)
productID INT(11)
cost DECIMAL(7,2)
qty TINYINT(2)
extendedCost DECIMAL(8,2)
通过PHP,用户将看到一个表单,以输入productID(通过下拉菜单),然后该选择填充成本字段。然后用户输入数量<代码>扩展成本在表单上不可见
我想要的是一个触发器,它只需自动计算/插入extendedCost
(即乘以成本x数量)并填充extendedCost
,但我得到了1064个错误
这是扳机-我到底错过了什么???我发誓我已经做了20次了:
DELIMITER $$
DROP TRIGGER IF EXISTS EXTENDEDCOST $$
CREATE TRIGGER EXTENDEDCOST AFTER INSERT ON salesOrderItems FOR EACH ROW BEGIN
UPDATE salesOrderItems
SET extendedCost = (cost * qty)
WHERE soItemID = NEW.soItemID;
END $$
DELIMITER ;
结果:
ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-db' at line 1
SQL Statement:
USE <my db/schema>
ERROR: Error when running failback script. Details follow.
ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-db' at line 1
SQL Statement:
USE <my db/schema>
错误1064:您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以获取第1行中使用的接近'-db'的正确语法
SQL语句:
使用
错误:运行故障回复脚本时出错。详情如下。
错误1064:您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以获取第1行中使用的接近'-db'的正确语法
SQL语句:
使用
我确信这是件愚蠢的事,但它让我发疯,我完全被卡住了,需要额外的眼睛
提前谢谢大家 既然您试图插入一个计算值,为什么要在插入之前执行额外的更新而不设置触发时间:
请参见此答案 错误在别处,消息抱怨出现了“use…”语句,您可能只是缺少了数据库名称周围的一些反勾号。在选择数据库后在phpmyadmin中执行此查询不是直接的我认为是一样的-use error…第1行。。。。但我的命令一点也不奇怪。我没有加载phpmyadmin,所以我无法尝试..我正在使用workbench。
CREATE TRIGGER EXTENDEDCOST BEFORE INSERT ON salesOrderItems FOR EACH ROW BEGIN
SET NEW.extendedCost = NEW.cost * NEW.qty
END $$