[mysql] MySQL-기존 필드를 고유하게 만들기

고유해야하지만 그렇지 않은 필드가있는 기존 테이블이 있습니다. 나는 이미 존재하는 다른 항목과 동일한 값을 가진 테이블에 항목이 작성되어 문제가 발생했기 때문에 이것을 알고 있습니다.

이 필드가 고유 한 값만 허용하도록하려면 어떻게합니까?



답변

ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);

MySQL 5.7.4 이상의 경우 :

ALTER TABLE mytbl ADD UNIQUE (columnName);

MySQL 5.7.4부터 ALTER TABLE에 대한 IGNORE 절이 제거되고 사용시 오류가 발생합니다.

따라서 IGNORE 키워드가 더 이상 지원되지 않으므로 중복 항목을 먼저 제거하십시오.

참고


답변

이 쿼리를 db phpmyadmin에 작성하십시오.

ALTER TABLE TableName ADD UNIQUE (FieldName)

예 : ALTER TABLE user ADD UNIQUE (email)


답변

제약 조건의 이름도 지정하려면 다음을 사용하십시오.

ALTER TABLE myTable
  ADD CONSTRAINT constraintName
    UNIQUE (columnName);


답변

CREATE UNIQUE INDEX foo ON table_name (field_name)

해당 SQL을 실행하기 전에 해당 열에서 중복 값을 제거해야합니다. 해당 열에 기존 중복 값이 ​​있으면 mysql 오류 1062가 발생합니다.


답변

가장 쉽고 빠른 방법은 phpmyadmin 구조 테이블을 사용하는 것입니다.

PHPMYADMIN 관리자 패널을 사용하십시오!

러시아어로되어 있지만 영어 버전은 동일해야합니다. 고유 버튼을 클릭하십시오. 또한 거기에서 열을 PRIMARY 또는 DELETE로 만들 수 있습니다.


답변

ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);

정답입니다

삽입 부

INSERT IGNORE INTO mytable ....


답변

이 코드는 기존 테이블의 고유 키를 설정하기 위해 문제를 해결하는 것입니다.

alter ignore table ioni_groups add unique (group_name);