2012-11-29 1 views
3

Derby 데이터베이스에서 Oracle의 ORA_ROWSCN에 대한 대략적인 에뮬레이션을 만들려고합니다. 테스터가 Oracle Express 또는 그와 비슷한 것을 설치할 필요가 없도록 단위 테스트를 위해 Derby를 사용하고 있습니다. 그래서 저는 다음과 같은 성명서를 가지고 있습니다 :Derby에서 행을 삽입하기 전에 어떻게 컬럼 값을 설정합니까?

CREATE TRIGGER 
my_table_bi NO CASCADE BEFORE 
INSERT ON my_table 
REFERENCING NEW AS NEW 
FOR EACH STATEMENT MODE DB2SQL 
NEW.ORA_ROWSCN = 1 

결국 저는 이것을 더 복잡하게 만들고 싶습니다. 그러나 나는 그것을 가능하게 만드는 것으로부터 시작하고 싶습니다. 오류가 발생합니다.

Syntax error: Encountered "NEW" at line 6, column 5

무엇이 누락 되었습니까? 이것은 가능한가?

+0

나는 일반적으로 믿습니다. 그렇습니다. 새 행에 대한 귀하의 이름에 대해 불만을 제기 할 수도 있습니다 ('신규'). 참조의 이름을 변경하면 어떻게됩니까? 또한 '행'트리거에서 이전/새 _row_ 참조 만 사용할 수 있습니다. 그렇지 않으면 [문서에서 테이블 참조를 사용해야한다고 말합니다.] (http://db.apache.org/derby/docs/10.1/ref/rrefsqlj43125) .html # rrefsqlj43125__sqlj54276) –

답변

0

삽입하기 전에 시뮬레이션을 사용하여 너무 늦지 않으면 도움이 될 수 있습니다.

DROP TRIGGER TRI_UPPER_FIRSTNAME_PERSONNES; 
CREATE TRIGGER TRI_UPPER_FIRSTNAME_PERSONNES 
AFTER INSERT ON PERSONNES 
REFERENCING NEW AS NEW 
FOR EACH ROW 
UPDATE PERSONNES SET FIRSTNAME_PER = UPPER(NEW.FIRSTNAME_PER) WHERE NEW.SID_PER = SID_PER; 
관련 문제