ORACLE만 해보고 인터베이스는 안해봐서 좋은 답변이 될지 모르겠지만...
SELECT MAX(JPNO) FROM PGO WHERE (NEW.IDATE=OLD.IDATE)
INTO :MAX_NUM;
위 SQL文을 아래와 같이(WHERE절) 바꿔 보세요.
SELECT MAX(JPNO) FROM PGO WHERE (IDATE=NEW.IDATE)
INTO :MAX_NUM;
그리고 표준 SQL SYNTAX가 아니군요.
SELECT MAX(JPNO) INTO :MAX_NUM FROM PGO WHERE (IDATE=NEW.IDATE);
이렇게 해야 맞는것 아닌가요?
감사^^ 님이 쓰신 글 :
: 환절기 감기조심하십시요.
:
: 인터베이스를 사용하는데 트리거 정보가 많이 없는것 같아서 염치불구하고
:
: 질문 올립니다.
:
: 해당 일자별로 1씩 자동증가하는 트리거 구현 방법은?
:
: 아래와 같이 하면 'OLD.IDATE' 에서 에러가 뜹니다...
:
: CREATE TRIGGER TRI_JPNO1 FOR IPGO BEFORE INSERT POSITION 0
: AS
: DECLARE VARIABLE MAX_NUM INTEGER;
: BEGIN
: SELECT MAX(JPNO) FROM PGO WHERE (NEW.IDATE=OLD.IDATE)
: INTO :MAX_NUM;
:
: IF (MAX_NUM IS NULL) THEN MAX_NUM=1;
: ELSE MAX_NUM=MAX_NUM+1;
:
: NEW.JPNO=MAX_NUM;
: END
:
: 좋은 답변 부탁드립니다. 감사합니다
:
:
|