> MySQL에서 테이블 생성시
> 임의의 필드에 값이 주어지지 않는 한
> 특정한 다른 필드와 같은 값을 갖도록 하는 문제인데요..
>
> 아래와 같은 테이블에서..
>
> CREATE TABLE test (
> sno int(7) unsigned DEFAULT '0' NOT NULL auto_increment,
> rno int(7) unsigned ...,
> ...,
> );
>
> rno 에 값이 입력되지 않을 경우, 자동으로
> sno 와 같은값이 저장되도록 테이블을 설계(?) 할 수 있나요?
>
> 아니면 Query 수준에서 할수 있는 방법이라도 있음 알려주세여~
말씀하신 내용은 rule system 을 이용해야 하는 문제입니다.
하지만 MySQL에서는 지원되지 않는 기능이므로 자동으로 하는 것 (즉 테이블을 그렇게 정의하는 것) 은 불가능합니다.
결국은 프로그램 레벨에서 test table에서 한 tuple을 삭제하는 코드를 따로 procedure 로서 실행시키는 수 밖에 없을 것 같습니다.
Constraint 문도 지원되지 않으므로 방법이 없을 것 같습니다.
Query 수준에서는 당연히 가능하겠지요.
문제의 경우는 rno에 not null auto_increment 속성을 부여한 경우에는 값이 입력되지 않을 수 없습니다. 그러니 질문하신 내용은 당연히 성립되지 않습니다. 하지만 저 속성을 없애고 시도하는 경우에는 충분히 가능하겠지요. query 수준에서 입력되기 저에 rno 값이 존재하는지 여부를 비교하여 없는 경우 sno 값을 주면 될 것 같군요.
|