2012-08-28 57 views
0

我正在將一些舊的Interbase數據庫轉換爲MySql,並且在轉換觸發器時遇到了一些麻煩。這是我到目前爲止,但似乎無法理解以下觸發器中的錯誤。你能幫助修復語法嗎?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^

回答

0

試試這個代碼 -

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 

執行相同的第二觸發。