세 가지 추가 방법: 1. "CREATE INDEX" 문을 사용하여 추가합니다. 구문은 "CREATE UNIQUE INDEX 인덱스 이름 ON 테이블 이름(열 이름 목록)"입니다. 2. 테이블을 생성할 때 추가하면 구문은 다음과 같습니다. "CREATE TABLE 테이블 이름(. .. UNIQUE KEY(컬럼 이름 목록) );"; 3. 테이블 수정 시 "ALTER TABLE 테이블 이름 ADD CONSTRAINT 인덱스 이름 UNIQUE KEY(컬럼 이름 목록);" 구문이 추가되었습니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
mysql 고유 인덱스(UNIQUE)
하나 이상의 열에 고유 값을 적용하려면 일반적으로 PRIMARY KEY 제약 조건이 사용됩니다. 그러나 각 테이블에는 기본 키가 하나만 있을 수 있습니다. 따라서 여러 열 또는 고유한 값을 가진 열 집합을 포함하려는 경우 기본 키 제약 조건을 사용할 수 없습니다.
다행스럽게도 MySQL은 값이 하나 이상의 열에 대해 고유하도록 강제할 수 있는 UNIQUE 인덱스라는 또 다른 인덱스를 제공합니다. PRIMARY KEY 인덱스와 달리 UNIQUE는 테이블당 여러 인덱스를 가질 수 있습니다.
UNIQUE 인덱스를 생성하려면 다음 <span style="Background-color: rgb(255, 255, 255); color: rgb(68, 68, 68);font-family: " helvetica neue microsoft yahei arial sans-serif>CREATE INDEX<code><span style="background-color: rgb(255, 255, 255); color: rgb(68, 68, 68); font-family: " helvetica neue yahei arial sans-serif>CREATE INDEX</span>
문:
CREATE UNIQUE INDEX 索引名 ON 表名(列名1,列名2,...);
하나 이상의 열에서 값의 고유성을 적용하는 또 다른 방법은 UNIQUE를 사용하는 것입니다. 제약.
UNIQUE 제약 조건을 생성하면 MySQL은 뒤에서 UNIQUE 인덱스를 생성합니다.
다음 문은 테이블을 생성할 때 고유 제약 조건을 생성하는 방법을 보여줍니다.
CREATE TABLE 表名( ... UNIQUE KEY(列名1,列名2,...) );
ALTER TABLE 문을 사용하여 기존 테이블에 고유 인덱스(UNIQUE)를 추가할 수도 있습니다.
ALTER TABLE 表名 ADD CONSTRAINT 索引名 UNIQUE KEY(列名1,列名2,...);
MySQL UNIQUE 인덱스 예제
애플리케이션에서 연락처를 관리하고 싶다고 가정해 보세요. 또한 연락처 테이블의 각 연락처에 대한 이메일이 고유하기를 원합니다.
이 규칙을 적용하려면 다음과 같이 CREATE TABLE 문에 고유 제약 조건을 생성하세요.
CREATE TABLE IF NOT EXISTS contacts ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, phone VARCHAR(15) NOT NULL, email VARCHAR(100) NOT NULL, UNIQUE KEY unique_email (email) );
SHOW INDEXES 문을 사용하면 MySQL UNIQUE가 이메일 열에 대한 인덱스를 생성하는 것을 볼 수 있습니다.
SHOW INDEXES FROM contacts;
연락처 테이블에 행을 삽입해 보겠습니다.
INSERT INTO contacts(first_name,last_name,phone,email) VALUES('John','Doe','(408)-999-9765','john.doe@mysqltutorial.org');
이제 이메일 주소가 john.doe@mysqltutorial.org인 줄을 삽입하려고 하면 오류 메시지가 표시됩니다.
INSERT INTO contacts(first_name,last_name,phone,email) VALUES('Johny','Doe','(408)-999-4321','john.doe@mysqltutorial.org');
ERROR 1062 (23000): Duplicate entry 'john.doe@mysqltutorial.org' for key 'unique_email'
원하는 이름, 성, 전화번호 조합도 연락처 간에 고유하다고 가정하세요. 이 경우 아래와 같이 CREATE INDEX 문 UNIQUE를 사용하여 이러한 열에 대한 인덱스를 생성할 수 있습니다.
CREATE UNIQUE INDEX idx_name_phone ON contacts(first_name,last_name,phone);
테이블을 결합하면 오류 first_name, last_name 및 전화가 이미 존재하므로 연락처에 다음 행을 추가합니다.
INSERT INTO contacts(first_name,last_name,phone,email) VALUES('john','doe','(408)-999-9765','john.d@mysqltutorial.org');rrree
【관련 추천: mysql 비디오 튜토리얼】
위 내용은 mysql에 고유 인덱스를 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!