0

古いレガシー Interbase データベースを MySql に変換していますが、トリガーの変換に問題があります。これは私がこれまでにやってきたことですが、次のトリガーのエラーが何であるかを理解できないようです. 構文の修正を手伝ってもらえますか?

DELIMITER ^

これら2つのケースでは、それinto new.FinancialCodeは間違っていると言います。これを達成するための正しいフォームは何ですか?(テーブル内の値を検索し、更新された行でそれを変更します)

Create Trigger triggerFinancialCode  BEFORE UPDATE ON  FLOW
FOR EACH ROW
begin
  Select FinancialCode FROM Accounts where AccountCode = new.AccountCode 
  into new.FinancialCode ;
end ^

Create Trigger triggerFinancialCodePredicted  BEFORE UPDATE ON  PREDICTED_FLOW
FOR EACH ROW
begin
  Select FinancialCode FROM Accounts where AccountCode = new.AccountCode 
  into new.FinancialCode ;
end ^
4

1 に答える 1

2

このコードを試してください -

CREATE TRIGGER triggerFinancialCode BEFORE UPDATE ON FLOW
FOR EACH ROW
BEGIN
  SET @var = NULL;

  SELECT FinancialCode INTO @var FROM Accounts WHERE AccountCode = NEW.AccountCode;

  SET NEW.FinancialCode = @var;
END

2 番目のトリガーについても同じことを行います。

于 2012-08-28T14:34:49.880 に答える