I가 다음 스키마 :SQL 어설 : 관리자 단지
EMP를 (아이드 INT, ENAME의 VARCHAR (50), 급여 플로트, 이메일 VARCHAR (80))
작품 (이드 INT, 는 INT, pct_time 플로트) (했다 INT, 예산 플로트, 관리자 ID의 int)를
부서를했다eid는 직원 ID입니다. 는 부서 ID 용입니다. 기본 키를 굵게했습니다. managerid는 eid뿐만 아니라 외래 키이고 Works에서 수행했습니다.
관리자가 항상 관리하는 직원보다 높은 봉급을 유지할 수있는 "관리자 복잡성"주장을 추가하고 싶습니다.
CREATE ASSERTION managerComplex
CHECK
(NOT EXISTS (SELECT M.salary
FROM Dept D, Emp M
WHERE D.managerid = M.eid) <=
(SELECT E.salary
FROM Works W, Emp E
WHERE W.eid = E.eid) AND
D.did = W.did);
이 바로이 근처에도가 : 여기
내가 생각해 봤는데 무엇인가? 또한 삽입 대신에 몇 개의 CHECK를 작성 했어야합니까? 여러 체크가 느껴지 긴하지만 기분이 좋을 것 같습니다.
편집 : 나는 NOT EXISTS (SELECT ...)
이 사실로 들어, SELECT ...
은 결과가 없다고합니다 내가 제대로 이해 해요 경우는 NOT
'Emp'에는 2 개의'salary float' 열이 있습니다.두 번째 칼럼 대신에 다른 칼럼을 지정 하시겠습니까? 아니면 이미 칼럼을 포함 시켰습니다. –
죄송합니다. 단지 오타였습니다. 지금 바로 수정하십시오. –
사용중인 SQl의 맛을 알 수 있습니다. SQl 서버에는 단언 할 수 없습니다. – HLGEM