database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1978 게시물 읽기
No. 1978
check 제약조건에 관한 질문입니다.
작성자
궁금이
작성일
2005-05-24 07:21
조회수
2,253

우선 상황부터 간단히 말씀드리면,

고객 : 고객ID(PRIMARY KEY)

게임 : 게임ID(PRIMARY KEY), 참여인원

테이블 : 테이블NO(PRIMARY KEY), 수용인원

이 있다고 할 때, 이들 사이에 '사용하다'라는 관계테이블을 만들고 싶습니다.

이 관계 테이블에 '게임 참여인원수와 테이블 수용인원수를 비교해서,

게임.참여인원<=테이블.수용인원 일 경우에만, 게임ID와 테이블NO를

입력할 수 있게 하고 싶은데요..

어떻게 해야하나요?

제 생각 같아서는 아래와 같이 하면 될 것 같은데

에러메시지가 나오더라구요.. ㅡㅡ;

 

CREATE TABLE 사용
(
고객ID VARCHAR(20) FOREIGN KEY (고객ID)
REFERENCES 고객(고객ID),
게임ID CHAR(5) FOREIGN KEY (게임ID)
REFERENCES 게임(게임ID),
테이블NO TINYINT FOREIGN KEY (테이블NO)
REFERENCES 테이블(테이블NO),
사용일시 DATETIME NOT NULL,
종료일시 DATETIME NOT NULL,
CONSTRAINT CK_NUM_OF_GAME_TABLE
CHECK (게임.참여인원 <= 테이블.수용인원),
PRIMARY KEY (고객ID, 사용일시)

)

 

이 글에 대한 댓글이 총 1건 있습니다.

제가 알기론 어느 DBMS든

조인해서 체크조건을 줄 수는 없는 걸로 알고 있는데..

가능한 방법이 있나요?

 

입력전에 체크해보는 수밖에 없지 않을까요?

insert into 사용

(..)

select ..

from 게임 a

where a.게임ID = :특정게임ID

and exist

(select 'x'

 from 테이블 b

 where a.게임ID = b.게임ID

 and a.참여인원 < b.수용인원

)

 

이 정도밖엔... 생각이 안나네요..

m님이 2005-05-24 09:38에 작성한 댓글입니다.
이 댓글은 2005-05-24 09:39에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1983도와주세요... 외래키가 안되요..ㅠㅠ [1]
oT^To
2005-05-24
2072
1982insert ~ select 문에 관한 질문입니다.... [4]
최수영
2005-05-24
6220
1981답변형(계층형)게시판에서 검색 방법에 대한 문의 [1]
이방은
2005-05-24
3639
1978check 제약조건에 관한 질문입니다. [1]
궁금이
2005-05-24
2253
1977MS-SQL과 MFC 연동후, 쿼리를 날리면 반환값을 어떻게받는지요 [1]
김재호
2005-05-24
4622
1976인덱스는 주기적으로 업데이트 해줘야 하나요? [3]
호야
2005-05-23
4118
1975동적으로 인덱스를 걸수 있을까요? [2]
^^
2005-05-23
1724
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다