>  기사  >  데이터 베이스  >  MySQL이 UNIQUE을 사용하여 중복되지 않은 데이터 삽입을 달성하는 방법에 대한 자세한 소개

MySQL이 UNIQUE을 사용하여 중복되지 않은 데이터 삽입을 달성하는 방법에 대한 자세한 소개

黄舟
黄舟원래의
2017-05-28 09:58:102030검색

고유 열이 UNIQUE 키에 중복 값을 포함하는 레코드를 삽입할 때 우리는 MySQL이 상황을 처리하는 방법을 제어할 수 있습니다. IGNORE 키워드를 사용하거나 ON DUPLICATE KEY UPDATE절을 사용하여 INSERT를 건너뛰고, 작동을 중단하거나 update오래된 기록을 새로운 가치로 업데이트하세요.

SQL UNIQUE Constraints

UNIQUE 제약 조건은 데이터베이스 테이블의 각 레코드를 고유하게 식별합니다.
UNIQUE 및 PRIMARY KEY 제약 조건은 모두 열 또는 열 집합에 대한 고유성을 보장합니다.
PRIMARY KEY에는 UNIQUE 제약 조건이 자동으로 정의되어 있습니다.

테이블당 여러 개의 UNIQUE 제약 조건을 가질 수 있지만 PRIMARY KEY 제약 조건은 테이블당 하나만 가질 수 있습니다.

다음 SQL은 "Persons" 테이블이 생성될 때 "Id_P" 열에 UNIQUE 제약 조건을 생성합니다.

CREATE TABLE Persons
(
  Id_P int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  UNIQUE (Id_P)
)

UNIQUE 제약 조건의 이름을 지정하고 여러 열에 대한 UNIQUE 제약 조건을 정의해야 하는 경우 다음 SQL을 사용하세요. 구문:

CREATE TABLE Persons
(
  Id_P int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255),
  CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)

테이블이 생성되었을 때 "Id_P" 열에 UNIQUE 제약 조건을 생성해야 하는 경우 다음 SQL을 사용하세요.

ALTER TABLE Persons ADD UNIQUE (Id_P)

UNIQUE 제약 조건의 이름을 지정하고 여러 항목에 대해 UNIQUE 제약 조건을 정의해야 하는 경우 열에 대해서는 다음 SQL 구문을 사용하십시오.

ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

UNIQUE 제약 조건을 취소하려면 다음 SQL을 사용하십시오.

ALTER TABLE Persons DROP INDEX uc_PersonID

이런 방식으로 MySQL은 중복 레코드가 삽입될 때마다 중복 항목 value1-value2를 묻는 메시지를 표시합니다. 키 uni_que 물론 삽입 시 무시를 추가할 수 있습니다. 이제 중복된 레코드가 없으므로 레코드가 없으면 삽입을 시작하고 레코드가 있으면 업데이트해야 합니다.

INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...) ON DUPLICATE KEY UPDATE field1='value1', field2='value2', field3='value3', ...

이 문은 해당 레코드가 없으면


INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...)

를 실행합니다. 레코드가 있으면


UPDATE field1='value1', field2='value2', field3='value3', ...
를 실행합니다.

위 내용은 MySQL이 UNIQUE을 사용하여 중복되지 않은 데이터 삽입을 달성하는 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.