복합 기본 키라고 불리는 것은 테이블의 기본 키에 둘 이상의 필드가 포함되어 있으며 비즈니스 의미가 없는 자동 증가 ID를 기본 키로 사용하지 않는다는 의미입니다.
예를 들어
create table test ( name varchar(19), id number, value varchar(10), primary key (name,id) )
위의 이름과 ID 필드의 조합은 테스트 테이블의 복합 기본 키입니다. 이는 이름 필드에 중복된 이름이 있을 수 있기 때문에 나타나는 것이므로 기록을 보장하기 위해 ID 필드를 추가해야 합니다. 고유성 일반적으로 기본 키의 필드 길이와 필드 수는 작아야 합니다.
기본 키가 유일한 인덱스인데 왜 테이블에서 여러 기본 키를 만들 수 있습니까?
사실 "기본 키가 유일한 인덱스"라는 말은 좀 모호합니다. 예를 들어 테이블에 ID 필드를 생성하고 이를 자동으로 늘려서 기본 키로 설정하면 "기본 키가 유일한 인덱스"이므로 ID 필드가 자동으로 커지므로 문제가 없습니다. 고유성을 보장하기 위한 것이므로 괜찮습니다.
이때 varchar 유형으로 다른 필드 이름을 생성하고 이를 기본 키로 설정하면 테이블의 여러 행에 동일한 이름 값을 채울 수 있다는 것을 알 수 있습니다. 기본 키는 고유합니다." 문장 "인덱스"는 무엇입니까?
그래서 '기본 키가 유일한 인덱스'라고 한 것은 모호합니다. "테이블에 기본 키가 하나만 있으면 이것이 유일한 인덱스이고, 테이블에 기본 키가 여러 개인 경우 복합 기본 키라고 하며 복합 기본 키의 조합은 고유성을 보장합니다. 색인."
자체 증가 ID가 이미 고유 식별을 위한 기본 키로 사용될 수 있는 이유와 복합 기본 키가 여전히 필요한 이유는 무엇입니까? 모든 테이블에 ID 필드가 있어야 하는 것은 아니기 때문입니다. 예를 들어 학생 테이블을 작성했는데 학생을 고유하게 식별하는 ID가 없는 경우 학생의 이름, 나이, 학급이 모두 반복될 수 있습니다. 단일 필드는 고유 식별에 사용할 수 없습니다. 이때 여러 필드를 기본 키로 설정하여 복합 기본 키를 구성할 수 있습니다. 이 중 특정 기본 키 필드 값이 있으면 문제가 없습니다. 여러 레코드가 아닌 한 반복됩니다. 모든 기본 키 값이 정확히 동일하면 중복으로 간주되지 않습니다.
복합 기본 키를 단일 기본 키로 변경하는 방법
테이블은 하나의 기본 키만 가질 수 있습니다.
하나의 열을 기반으로 하는 기본 키:
alter table test add Constraint PK_TEST 기본 키(ename );
여러 열 기반 통합 기본 키:
테이블 테스트 변경 제약 조건 추가 PK_TEST 기본 키(ename,birthday);
위 내용은 복합 기본 키를 단일 기본 키로 변경하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!