trigger 코딩 문제ㅠㅠ 0 4 1,842

by 가자미 [2011.07.17 23:32:11]


insert into test(dname)
values('진단서');
               ↓
trigger 'test_year'
               ↓
|------------------------|
| year       | dname   |
|-----------------------|
|Y11        | 진단서   |
|--------------|-----------|
           
===============================================================================

안녕하세요ㅋ 오늘 처음 글을 쓰게 되네요ㅋ

궁금하 것이 있어서 적어봅니다.ㅋ

라는 테이블에 두가지 컬럼이 있습니다. 
dname 이라는 컬럼에 위와 같은 insert문을 실행할경우
year 에는 'Y11'이라는 내용이 들어가게 되는 trigger를 만들려고 합니다.


'Y11' 은 다음과 같은 식으로 표현되었습니다. 

select 'Y' || to_char(sysdate, 'yy') from dual;


trigger인 'test_year' 의 식은

create or replace trigger test_year
    after insert on t01_arch
    for each row
begin
    insert into t01_arch(year)
    values('Y'||to_char(sysdate, 'yy'));
end;

이렇게 되어있는데 오류가 나옵니다.ㅠㅠ
도와주세요^^
by 무우다리 [2011.07.18 10:27:46]
Before Trigger로 구현해 보세요.
...
:new.YEAR := 'Y' || to_char(sysdate, 'YY');
...
Insert문 필요없고 new값만 정의하시면 될 거 같네요.

by 마농 [2011.07.18 11:16:52]
트리거로 하실 필요 없어 보입니다.
Default 값만 지정해 주시면 될듯.
ALTER TABLE ttt MODIFY year DEFAULT TO_CHAR(sysdate, '"Y"yy');

by 빈이 [2011.07.18 12:52:31]
default를 저런 방식으로 사용할수 있군요....

sysdate, not null 이런것만 생각했었는데...

또 한가지 배워갑니다 ^^;;;

감사합니다.

by 가자미 [2011.07.18 13:29:05]
아ㅋㅋㅋ그런 방법이!!ㅋㅋㅋ감사합니다!!
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입