2009-07-24 2 views
7

저는 python과 함께 sqlite3을 사용하는 방법을 배우고 있습니다. 내가 따라하는 교과서의 예는 각 국가 기록에 지역, 국가 및 인구가있는 데이터베이스입니다.CONSTRAINT 키워드는 CREATE TABLE 문에서 무엇을합니까?

이 책은 말한다 :

다음 코드가 지정 CONSTRAINT 키워드를 사용 그 테이블에 두 개의 항목이 어느 지역 및 국가에 대해 동일한 값 해야합니다 생성 존재하지 :

>>> cur.execute(''' 
CREATE TABLE PopByCountry(
    Region TEXT NOT NULL, 
    Country TEXT NOT NULL, 
    Population INTEGER NOT NULL, 
    CONSTRAINT Country_Key PRIMARY KEY (Region, Country)) 
''') 

여기 CONSTRAINT Country_Key이 무엇인지 설명해주세요. 이를 제거하면 PRIMARY KEY 문만으로 각 국가마다 해당 지역의 고유 한 이름이 있음을 확인할 수 있습니다.

답변

9

Country_key는 단순히 제약 조건에 이름을 지정합니다. 이 작업을 수행하지 않으면 이름이 생성됩니다. 이것은 테이블에 몇 가지 제약 조건이 있고 그 중 하나를 삭제해야 할 때 유용합니다. 제약 조건 삭제에 대한 예를 들어

: 당신이 문에서 CONSTRAINT Contry_Key를 생략하면, SQL 서버가 당신을 위해 당신의 PRIMARY KEY 제약 조건의 이름을 생성합니다

ALTER TABLE PopByCountry DROP CONSTRAINT Country_Key 
+0

맞습니다. 실제 PRIMARY KEY 제약 조건은 CONSTRAINT 키워드의 유무와 차이가 없습니다. 이 키워드는 단순히 제약 조건을 식별 할 수있게 해줍니다. –

+0

정말로 빠른 답장을 보내 주셔서 감사합니다. 나중에 제약 조건을 편집/삭제하기위한 간단한 명령 예제를 줄 수 있다면 이것을 답으로 표시 할 것입니다. –

+0

나는 더 일찍 미뤄졌다. 제한 조건 만 삭제할 수 있으며 직접 제약 조건을 편집 할 수는 없습니다. 그러나 하나를 삭제하고 다른 하나를 추가하여 사실상 편집을 수행 할 수 있습니다. –

1

합니다 (PRIMARY KEY 제약 조건의 유형입니다).

특히 CONSTRAINT를 쿼리에 넣으면 본질적으로 기본 키 제약 조건의 이름을 지정합니다.

관련 문제