두 개의 테이블이 있습니다. 하나는 '명'이고 다른 하나는 '결과'입니다.중복 키 값이 고유 제한 조건을 위반하지만
명에는 ID와 플레이어 이름이 있습니다.
결과에는 ID, playerID 및 점수와 시간이 있습니다.
그것은 (같은 선수가 여러 점수를 수 있기 때문에) 결과에서 "playerID는"고유하지 않을 것을 나에게 논리적 인 것 같다,이 쿼리를 실행할 때 비록 :
insert into results (playerid, score, time) values
((select id from persons where playername = 'Dylan'),100,100);
을 나는 오류가
ERROR: duplicate key value violates unique constraint "results_playerid_key"
DETAIL: Key (playerid)=(1) already exists.
아마도 데이터베이스에 오류가 있습니까? (데이터베이스는 내 대학의 여러 강사가 관리하므로 설정을 변경할 방법이 없습니다.)
당신이 제공 할 수있는 통찰력을 주셔서 감사합니다.
아니요. 잠재적으로 설계/개념상의 오류가 아니라면 데이터베이스에 오류가 아닙니다. 열에 고유 한 제한 조건이 있으므로 열에 중복 값을 삽입 할 수 없습니다. 해당 제약 조건을 원하지 않으면 제거해야합니다 – Clive
@Clive 예 질문이 명확하지 않은 경우 유감입니다. 제약 조건이 데이터베이스에 있다는 것을 알고 있지만 디자인에 오류가있을 수 있다고 생각했습니다! 감사! –