MySQL 고유 제약 조건(고유 키)을 사용하려면 열이 고유해야 하고 null이 허용되지만 null 값은 하나만 나타날 수 있습니다. 고유 제약 조건은 하나 이상의 열에 중복 값이 없도록 보장합니다.
테이블 생성 시 고유 제약 조건 설정
열 정의 후 직접 사용 UNIQUE 키워드는 고유 제약 조건을 지정합니다.
<字段名> <数据类型> UNIQUE
데이터 테이블 tb_dept2를 생성하고 부서 이름을 고유하게 지정합니다. 입력 SQL 문과 실행 결과는 다음과 같습니다.
mysql> CREATE TABLE tb_dept2 -> ( -> id INT(11) PRIMARY KEY, -> name VARCHAR(22) UNIQUE, -> location VARCHAR(50) -> ); Query OK, 0 rows affected (0.37 sec) mysql> DESC tb_dept2; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(40) | YES | UNI | NULL | | | location | varchar(50) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 3 rows in set (0.08 sec)
팁: UNIQUE와 PRIMARY KEY의 차이점: 테이블에는 UNIQUE로 선언된 여러 필드가 있을 수 있지만 PRIMARY KEY 선언은 하나만 있을 수 있습니다. PRIMAY KEY로 선언된 열은 null을 가질 수 없습니다. 그러나 UNIQUE로 선언된 필드는 null 값의 존재를 허용합니다.
테이블 수정 시 고유 제약 조건 추가
테이블 수정 시 고유 제약 조건 추가 구문 형식은 다음과 같습니다.
ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);
mysql> ALTER TABLE tb_dept1 -> ADD CONSTRAINT unique_name UNIQUE(name); Query OK, 0 rows affected (0.63 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC tb_dept1; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(22) | NO | UNI | NULL | | | location | varchar(50) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
UNIQUE KEY <唯一约束名>(<列名>,...,<列名n>)
CREATE TABLE `t_praise` ( `id` int(12) unsigned NOT NULL AUTO_INCREMENT, `comment_id` int(12) NOT NULL, `user_id` int(12) NOT NULL, KEY `FK_t_praise_comment` (`comment_id`), KEY `FK_t_praise_user` (`user_id`), UNIQUE KEY `UK_praise` (`comment_id`,`user_id`) )
위 내용은 mysql 다중 필드 고유 제약 조건의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!