2014-03-24 2 views
0

django를 사용하여 테이블에 새 항목을 추가했습니다. 이제 PHPPgAdmin (postgresql)을 사용하여 삭제하고 싶지만 No unique Identifier for this row 오류가 발생합니다. 문제가 무엇입니까?django가 PHPPgAdmin을 사용하여 만든 행을 삭제 하시겠습니까?

django가 자동 증가 기본 키를 자동으로 추가하므로 문제가 무엇인지 알 수 없습니까?

나는 this post,을 읽었지만 도움이되지 않았습니다. 이미지를주의 깊게 살펴보면 기본 키 열 레이블이 id이지만 pk이 아니므로 django에 있어야합니다.

enter image description here

편집 : 없음 기본 키가 테이블에 보이지 않는다; enter image description here

그러나 이것은 장고가 실행하는 것입니다.

python manage.py sql auth

CREATE TABLE "auth_user" (
    "id" serial NOT NULL PRIMARY KEY, 
    "password" varchar(128) NOT NULL, 
    "last_login" timestamp with time zone NOT NULL, 
    "is_superuser" boolean NOT NULL, 
    "username" varchar(30) NOT NULL UNIQUE, 
    "first_name" varchar(30) NOT NULL, 
    "last_name" varchar(30) NOT NULL, 
    "email" varchar(75) NOT NULL, 
    "is_staff" boolean NOT NULL, 
    "is_active" boolean NOT NULL, 
    "date_joined" timestamp with time zone NOT NULL 
) 
; 

편집 : 기본 키 enter image description here

+0

저는 스크린 샷을 통해 PHPPgAdmin을 사용한다고 가정합니다. 'psql'을 사용하여'\ d thetablename'을 실행하면 출력은 무엇입니까? 'PRIMARY KEY'를 보여줍니까? –

+0

@CraigRinger : 업데이트를 참조하십시오. – eagertoLearn

+0

'PRIMARY KEY '는 테이블 열 뒤에 나열됩니다. 거기서 확인해. –

답변

0

나는이 phpPgAdmin 버그 생각으로 id을 보여주는 PHPPgAdmin에서 스크린 샷.

비슷한 문제가 발생하여 직접 psql (./manage.py dbshell 명령 사용)으로 이동했습니다.

문제의 행을 삭제하고 phpPgAdmin의 오류 메시지보다 유용한 오류 메시지가 표시되었습니다. (제 경우에는 그 행이 다른 테이블에 의해 참조되고 있습니다.)

다른 테이블에서 참조하는 행을 삭제 했으므로 문제의 행을 삭제할 수있었습니다.

관련 문제