我有一个基于Maria DB的数据库和一个表"值"有两个字段(例如):" 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;
但显然它不起作用。我怎么能这样做?
答案 0 :(得分:1)
你遇到了很多问题。这应该更接近
CREATE TRIGGER my_table_trig BEFORE UPDATE ON `values`
FOR EACH ROW
SET NEW.Y = OLD.X/10;
CREATE TRIGGER my_table_trig BEFORE INSERT ON `values`
FOR EACH ROW
SET NEW.Y = OLD.X/10;
不清楚:如果X
未发生变化,您是否仍希望将Y
设置为X/10
?
注意BEFORE
,NEW
和OLD
,使用SET
,而不是UPDATE
,2个触发器等。