【发布时间】:2018-02-07 17:34:47
【问题描述】:
我必须先用触发器修改插入数据的值。这是我的触发器:
DROP TRIGGER IF EXISTS `Calcul_conso`;CREATE DEFINER=`root`@`localhost` TRIGGER `Calcul_conso` BEFORE INSERT ON `data` FOR EACH ROW begin
...
DECLARE multiplicateur FLOAT DEFAULT 1;
...
SELECT multiplicateur, calcul_conso into multiplicateur, c_c from capteur where sensor_number = NEW.sensor_number;
SET NEW.value = NEW.value * multiplicateur;
...
end
我有以下结构:
俘虏
sensor_number (Primaire) varchar(64) 非
nom varchar(150) Oui NULL
乘法浮点非 1
数据
id (Primaire) int(11) 非
sensor_number varchar(64) 非
值 float Oui NULL
日期日期时间非
我尝试了一个简单的 * 来相乘,但它似乎不起作用。
示例:
new.value = 153265000 和乘法器 = 0.001
【问题讨论】:
-
'我尝试了一个简单的 * 来相乘,但它似乎不起作用'是什么让你这么认为?
-
值未更新。当我从选择中执行此操作时,它运行良好,但从我的触发器中,它不起作用
-
触发器的代码段没有具体语法 c_c 未声明,calcul_censo 来自哪里?
-
不要有与列名同名的变量名mysql不会猜到你的意图。
-
你检查我的答案了吗?