0

我正在将一些旧的遗留 Interbase 数据库转换为 MySql,但在转换触发器时遇到了一些问题。这就是我到目前为止所做的,但似乎无法理解以下触发器中的错误是什么。你能帮忙修正语法吗?

DELIMITER ^

在这两种情况下,它说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

对第二个触发器执行相同的操作。

于 2012-08-28T14:34:49.880 回答