0
私は、MySQLコミュニティサーバ5.5.16に更新トリガーを作成しようとしていますが、私はエラーを持っている:MySQLの更新トリガ誤差
ERROR 1064 (42000): 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 'REFER
ENCING NEW TABLE AS ntable
BEGIN atomic
DECLARE n_overdraft INTEGER;
DECL' at line 1
誰もがこの問題で私を助けてもらえます。ありがとう。ちょうどそれは、MySQLサーバの標準ではありませんので、REFERENCING NEW TABLE AS ntable
とatomic
を削除するために必要な
CREATE TABLE overdraft(account_no INTEGER,over_draft INTEGER);
DELIMETER //
CREATE TRIGGER t_creditexceed AFTER UPDATE ON Account REFERENCING NEW TABLE AS ntable
BEGIN atomic
DECLARE n_overdraft INTEGER;
DECLARE n_balance INTEGER;
DECLARE n_number INTEGER;
DECLARE n_credit INTEGER;
DECLARE credit_exception condition for SQLSTATE '07030';
SELECT balance, credit, number INTO n_balance, n_credit, n_number
FROM ntable;
IF ((n_balance < (-n_credit)) AND (n_balance >= 1.1 * (-n_credit)))
THEN
SET n_overdraft = n_balance + n_credit;
INSERT INTO overdraft (account_no, over_draft) VALUES (n_number, n_overdraft);
END IF;
IF (n_balance < 1.1 *(- n_credit))
THEN signal credit_exception;
END IF;
END;
//
DELIMETER - > DELIMITER。 NEW TABLEを参照しているものは何ですか? – Devart
これは、移行テーブル "ntable"を使用する "Account"テーブルへの参照です。 – user1047517
MySQLを使用している場合、このマニュアルは役に立ちます - http://dev.mysql.com/doc/refman/5.5/en/create-trigger.html – Devart