MySQL에서 table1에 4 개의 열 (날짜, 열기, 높음, 낮음, 닫음, 계산)이 있습니다. 새로운 값이 테이블 1에서 업데이트 될 때 계산 필드가 이전 행 값을 사용하여 업데이트되도록 트리거를 만드는 방법을 파악하려고합니다. 내가 현재 사용 계산 필드를 업데이트하기 위해 아래의 트리거를 사용하고 현재, 높은 현재 저와 가까운 지금MySQL 트리거의 이전 행 값에 액세스하십시오.
DELIMITER //
create TRIGGER `updatetable1` before insert ON `table1` FOR EACH ROW begin
set NEW.Calculation=((NEW.High-New.Low)*0.118)+NEW.Close;
end //
DELIMITER ;
나는 다음과 같은 논리를 사용하여 공식을 조금 수정하고 싶은 현재 :
Calculation (i) =((High(i-1) -Low(i-1))*0.118)+Close(i-1);
어떻게 액세스 할 수있는 이전 행 값의 고, 저와 클로스의 이 트리거를 업데이트하려면 현재 계산의 행 값을?
예 :
'신'은 알고 있지만 '오래된'은 아는 것처럼 보입니다. 매뉴얼에서 : "트리거 본문 내에서 OLD 및 NEW 별명을 사용하여 주제 테이블 (트리거와 연관된 테이블)의 컬럼을 참조 할 수 있습니다. OLD.col_name은 갱신되기 전에 기존 행의 컬럼을 참조합니다 NEW.col_name은 삽입 될 새 행의 열 또는 업데이트 된 후 기존 행을 나타냅니다. " –
@ ÁlvaroGonzález : 다음과 같이 논리를 작성했습니다. NEW.Calculation = ((OLD.High -OLD.Low) * 0.118) + OLD.Close; 오류 코드 : 1363. INSERT 트리거에 OLD 행이 없습니다. –
죄송합니다. 질문을 잘못 읽었습니다. 나는 당신이 UPDATE 트리거를 쓰고 있다고 생각했습니다. –