2016-05-08 11 views
0

私はMaria DBと2つのフィールド(たとえば): "X"と "Y"を持つテーブル "値"に基づいてDBを持っています。 私が作るY = X/10編集時にMariaDBトリガー、自動更新フィールド?

、その、挿入時もXの更新時にトリガーを作成したい私はこのような何か試してみた:

CREATE TRIGGER my_table_trig AFTER UPDATE OF X ON values 
BEGIN 
    update values SET values.Y = X/10 WHERE X = NEW.X; 
END; 

しかし、明らかにそれが機能していませんが。私はそれをどのようにすることができますか?

答えて

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は変更しなかった場合、あなたはまだYX/10に設定したいですか? SET、ないUPDATE、2つのトリガを使用して

BEFORENEWOLDなど

+0

おかげで、それは動作しますが、問題があります。 Y値はY更新時にのみX/10になり、X更新には必要ないようになります。どのように私はそれを解決することができます? –

+0

申し訳ありませんが、それはSQLでの私の最初の仕事です –

+0

私はあなたの_ _ _ _ _ _ _ _ _ _ _ _ _ _ _を使用して_トリガーまたはストアドルーチンを_first_仕事でSQLで使用することをお勧めします。あなたはこれらの問題をつまずくことなく学ぶべきことがたくさんあります。同等のSQL _without_トリガーを入力してください。多分私はYについてではなく、Xについてあなたが何を意味しているのか理解することができます。 –

関連する問題