2
나는 MySQL에서 트리거를 작성하려고하는데 여러 변수의 값을 설정해야한다. 나는 이러한 변수에 투입해야 할 값이 기존 테이블의 행에서 있습니다 (여러 행에 대해 걱정하지, 하나가 될 것입니다) :MySQL BEFORE INSERT 트리거 여러 변수로 선택 하시겠습니까?
DELIMITER |
CREATE TRIGGER ins_move_to_hist BEFORE INSERT ON EndOfDay
FOR EACH ROW
BEGIN
DECLARE _RowsMatching int;
DECLARE _EodId int(10) unsigned;
DECLARE _Open decimal(6,4);
DECLARE _High decimal(6,4);
DECLARE _Low decimal(6,4);
DECLARE _Close decimal(6,4);
DECLARE _Volume int(10) unsigned;
DECLARE _mtime datetime;
SELECT _RowsMatching = Count(*),
EodId as _EodId,
Open as _Open,
High as _High,
Low as _Low,
Close as _Close,
Volume as _Volume,
mtime as _mtime
from EndOfDay
where DateId = NEW.DateId
and TickerId = NEW.TickerId;
그러나, 트리거가 (결과 선택을 허용하지 않는 나는 필요 없다). 그래서 스크립트를 만들면 다음과 같은 오류가 발생합니다.
Not allowed to return a result set from a trigger.
+1 올바른 길을 가고 있지만 구문에 약간의 작업이 필요합니다. http://dev.mysql.com/doc/refman/5.1/en/select-into-statement.html을 참조하십시오. –
오 주여, 맞습니다!^_^ 내 기억력보다는 신뢰할 수있는 능력에 의존하려고 시도하는 대신 이러한 종류의 것들을 확인해야 할 필요가 있습니다. heheh. 고마워, 빌. –