2014-11-11 7 views
0

과제를 위해 테이블을 만들어야하는데, 끝났지 만 여전히 질문이 있습니다. 나는 ii에서해야 할 일을 이해하지 못합니다. 난 그냥 VARCHAR 명령을 썼습니다. 그러나 이것이 맞는지 확실하지 않습니다. 왜냐하면 viii과 같은 최대 2 자 대신 범위가 작성되기 때문입니다. 다음은 전체 운동입니다. 누군가가 나를 도울 수 있기를 바랍니다.SQL 만들기 테이블 할당

i. 에이전트 에이전트 코드 - 고유 한 PK/고유하지 않은 PK

ii. 에이전트 Areacode - 유효 범위/

범위의 아웃 iii.Agent 전화 -

IV

너무 큰 최대 13chars/크기. 에이전트 이름 - NOT/NULL NULL

V 에이전트 YTD_Sls -. 잘못된/숫자 데이터 형식

VI. 고객 Cus_Code - 고유 PK/비 고유 PK

vii.Customer LNAME - NOT/NULL NULL

viii.Customer 초기 - 최대 2chars/크기가 너무 큰

IX. 고객 Renew_date - DATE 데이터 유형/Incorrect datatype x.

예를 들어, 첫 번째 비즈니스 규칙은 Agent_code가 고유 한 PK가되어야합니다. 이 비즈니스 규칙이 구현되었는지 확인하기 위해 고유하지 않은 PK를 삽입하려고하는 INSERT 명령을 작성합니다. 아래 샘플 데이터의 첫 번째 행을 살펴보면 이미 테이블에있는 A101의 고유하지 않은 값을 삽입하려고 시도 할 수 있습니다. 고유하거나 PK가 위반되었음을 확인하는 오류 메시지가 표시 될 것으로 예상됩니다. 이것은 비즈니스 규칙이 데이터베이스에 의해 강제되고 있음을 확인합니다.

답변

-1

Areacode 필드에 체크 제약 조건을 넣어 모든 항목이 유효한 지역 코드의 범위와 일치하도록해야합니다.

그런 다음 잘못된 Areacode가있는 행을 삽입/업데이트하여 실패하는지 확인하십시오.

+0

답변 해 주셔서 감사합니다. :) 그렇다면이 권한이 필요합니까? CHECK (AREA_CODE> 0), – Taurus22

+0

네, 만약 당신의 areacode 필드가 정수형이고 최대 값이 없다면. 그런 다음 원하는 예외를 얻기 위해 0보다 작거나 같은 areacode 행을 설정하십시오. –

+0

아, 고맙습니다. :) – Taurus22

관련 문제