MariaDB 触发器,编辑时自动更新字段?
MariaDB trigger, autoupdate field on edit?
我有一个基于 Maria DB 的数据库和一个带有两个字段(例如)的 table "values":"X" 和 "Y"。
我想创建一个触发器,在插入和更新 X 时使 Y = X / 10。
我试过这样的事情:
CREATE TRIGGER my_table_trig AFTER UPDATE OF X ON values
BEGIN
update values SET values.Y = X/10 WHERE X = NEW.X;
END;
但是显然是行不通的。我该怎么做?
你有很多问题。这应该更接近
CREATE TRIGGER my_table_trig BEFORE UPDATE ON `values`
FOR EACH ROW
SET NEW.Y = NEW.X/10;
CREATE TRIGGER my_table_trig BEFORE INSERT ON `values`
FOR EACH ROW
SET NEW.Y = NEW.X/10;
不清楚:如果X
没变,你还要Y
设置成X/10
吗?
注意 BEFORE
、NEW
和 OLD
,使用 SET
,而不是 UPDATE
,2 个触发器等
我有一个基于 Maria DB 的数据库和一个带有两个字段(例如)的 table "values":"X" 和 "Y"。 我想创建一个触发器,在插入和更新 X 时使 Y = X / 10。
我试过这样的事情:
CREATE TRIGGER my_table_trig AFTER UPDATE OF X ON values
BEGIN
update values SET values.Y = X/10 WHERE X = NEW.X;
END;
但是显然是行不通的。我该怎么做?
你有很多问题。这应该更接近
CREATE TRIGGER my_table_trig BEFORE UPDATE ON `values`
FOR EACH ROW
SET NEW.Y = NEW.X/10;
CREATE TRIGGER my_table_trig BEFORE INSERT ON `values`
FOR EACH ROW
SET NEW.Y = NEW.X/10;
不清楚:如果X
没变,你还要Y
设置成X/10
吗?
注意 BEFORE
、NEW
和 OLD
,使用 SET
,而不是 UPDATE
,2 个触发器等