어쨌든 이상한 문제가 있습니다. 어쨌든 내 눈이 이상합니다. ID, 사용자 이름, 전자 메일, 암호 등이있는 데이터베이스가 있습니다. ID는 기본 키이며 사용자 이름과 전자 메일에 모두 고유 키가 할당되어 있습니다.MySQL : 고유 키
이제 이상한 것은 제출할 때 다음 값을 말할 수 있습니다.
username: ActionHank
email: [email protected]
이 첨가된다.
이제 동일한 값을 다시 추가하려고하면 중복 항목이므로 허용되지 않는다는 오류가 발생합니다. 이것은 잘 작동합니다. 그러나 다음에 다음을 넣을 때;
username: ActionHank2
email: [email protected]
그냥 다시 입력하기 때문에 이메일 행에 고유 키를 입력하는 동안 2 명의 사용자가 동일한 전자 메일 주소를 사용합니다. 또한 사용자 이름 대신 전자 메일 주소를 변경하면 추가됩니다. 그래서 어떻게 든 MySQL은 UNIQUE 키 중 하나만 등록하거나 혼란 스럽습니다.
이 문제에 대해 도움을 줄 수 있습니까? 감사합니다
편집 : 나는 테이블을 만들 phpMyAdmin을 사용하고 SQL로 내 보낸, 여기에 생성 테이블 보이는 방법은 다음과 같습니다
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(25) NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`date_registered` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`ip_address` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`,`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=54 ;
그래서 나는 마이클과 Kingkero가 제안하는 복합 같아요. phpMyAdmin에서 어떻게 해결할 수 있습니까?
각 행 자체에 UNIQUE 제약 조건이 있으며 둘 다 함께 적용되지 않습니까? – kero
이 테이블에 대한 'SHOW CREATE TABLE tblname'을 게시하십시오. 개별 UNIQUE 인덱스가 아닌 해당 열에 복합 UNIQUE가있을 수 있습니다. –
게시물을 수정합니다. :) – Serellyn