primary key

moon.kick·2025년 3월 13일

SQL

목록 보기
4/11

당신이 작성한 SQL 문에서 primary key(id, num)에 대한 문법을 수정해야 할 필요가 있습니다. 이유는 primary key 제약조건이 기본적으로 테이블에 대한 "단일 유니크한 키"를 정의하는데, numauto_increment로 설정되어 있으므로 idnum 둘 다를 기본 키로 설정하는 것은 불필요하고 논리적이지 않을 수 있습니다.

수정된 코드:

use mytest;
create table member(
    num int auto_increment,
    id int, /* 중요키 */
    username varchar(50) not null,
    reg_date datetime,
    primary key(id)  -- id를 기본 키로 설정
);

수정 사항과 이유:

  1. primary key(id, num)에서 num을 기본 키에 포함시킬 필요가 없습니다. numauto_increment로 설정되어 있기 때문에, num 값은 자동으로 증가하고 유일성을 보장하므로, id만 기본 키로 설정하면 충분합니다.

  2. id는 중요키로 사용되고, 각 id가 고유하도록 보장해야 합니다. 따라서 id를 기본 키로 설정하면 됩니다. numauto_increment 속성으로 각 레코드가 자동으로 유일한 값을 가지기 때문에 primary key로 포함하지 않아도 됩니다.

  3. primary key(id)로 변경했을 때 id는 유일한 값이어야 하므로, id는 중복된 값을 가질 수 없게 됩니다. num은 중복을 허용할 수 있지만, 각 레코드에 대해 고유한 값을 가지므로 단일 유니크 키로 사용할 수 있습니다.

따라서 primary key(id)로 설정하는 것이 더 간단하고 올바른 방식입니다.

profile
@mgkick

0개의 댓글