HOWTO · MySQL

MySQL의 여러 열에 대한 고유 제약 조건 지정

오늘 포스트에서는 MySQL의 여러 열에 대한 고유 제약 조건을 지정하는 여러 가지 방법을 살펴보겠습니다.

이 페이지의 내용

오늘의 게시물에서는 MySQL에서 여러 열에 대한 고유 제약 조건을 지정하는 방법을 살펴보겠습니다.

MySQL의 여러 열에 대한 고유 제약 조건 지정

경우에 따라 열 또는 열 컬렉션의 각 값이 고유한지 확인하고 싶을 수 있습니다.

예를 들어 직원 데이터베이스의 사용자 이메일 주소나 고객 테이블의 고객 전화번호는 달라야 합니다. 이 규칙을 적용하기 위해 고유 제약 조건이 사용됩니다.

UNIQUE라는 무결성 제약 조건은 열 또는 열 조합의 각 값이 구별되도록 합니다. 테이블 제약 조건 또는 열 제약 조건은 모두 고유 제약 조건일 수 있습니다.

통사론:

CREATE TABLE table_name(
    column_name data_type UNIQUE,
);

위의 구문에서 고유성 규칙을 적용하려는 열 지정에는 UNIQUE 키워드가 포함됩니다. 열 이름에 중복을 초래하는 값을 삽입하거나 업데이트하면 MySQL은 수정을 거부하고 오류를 생성합니다.

열 제약 조건은 이 UNIQUE 제약 조건에서 사용됩니다. 또한 단일 열에 고유한 규칙을 적용하는 데 사용할 수 있습니다.

다음 구문은 둘 이상의 열에 대해 UNIQUE 제약 조건을 설정하는 데 사용됩니다.

통사론:

CREATE TABLE table_name(
   column_name1 data_type,
   column_name2 data_type,
   UNIQUE(column_name1,column_name2)
);

MySQL ALTER TABLE 명령을 사용하여 테이블에서 열을 추가, 수정 또는 삭제/삭제할 수 있습니다. ADD UNIQUE 명령은 고유 제약 조건이 없는 열이 이미 존재하는 경우 고유 제약 조건을 추가할 수 있습니다.

아래 구문을 사용하여 두 개 이상의 열에 대한 고유 제약 조건을 만듭니다.

통사론:

ALTER TABLE table_name ADD UNIQUE column_name;
ALTER TABLE table_name ADD UNIQUE `index_name`(column_name1, column_name2);

이전 개념을 더 잘 이해하려면 다음 예를 고려하십시오.

CREATE TABLE Employees(
    email varchar(255) UNIQUE,
    first_Name VARCHAR(255),
    last_Name VARCHAR(255)
);
CREATE TABLE EmployeeDepartment(
   email varchar(255),
   department varchar(255),
   UNIQUE(email,department)
);
-- If the Employees table does not have a unique email constraint
ALTER TABLE EmployeeDepartment ADD UNIQUE email;
-- If the EmployeeDepartment table does not have a unique constraint
ALTER TABLE EmployeeDepartment ADD UNIQUE `unique_department_emp`(email,department);

이전의 첫 번째 예에서는 email, first_Namelast_Name 특성을 사용하여 Employees라는 데이터베이스를 만들었습니다. 이메일 열의 데이터와 중복되는 값을 변경하거나 편집하면 오류가 발생합니다.

UNIQUE. 키워드를 사용하여 이메일을 고유 열로 지정합니다.

첫 번째와 마찬가지로 emaildepartment. 변수를 포함하는 EmployeeDepartment 테이블을 생성했습니다. email+department 열에 데이터가 중복되는 값을 삽입하거나 변경하면 오류가 발생합니다.

UNIQUE 키워드를 사용하여 emaildepartment의 조합을 고유한 열로 만듭니다.

유사하게 새 고유 제약 조건을 추가하여 기존 테이블을 수정할 수 있습니다.

MySQL과 호환되는 모든 브라우저에서 위의 코드 행을 실행하십시오. 다음과 같은 결과가 표시됩니다.

Query executed successfully.