2011-08-25 4 views
1

MySQL 데이터베이스를 관리하기 위해 Idaq 호스팅 패키지에서 Webmin을 사용하고 있습니다. 이전 호스트에서 데이터베이스를 가져 왔는데 "이 테이블의 데이터는 기본 키가 없으므로 편집 할 수 없습니다."라는 오류로 인해 특정 테이블에있는 데이터를 변경할 수 없습니다.기본 키가없는 MySQL 데이터베이스의 데이터 편집

PHP 스크립트에서 데이터를 변경할 수는 있지만 실제로 제어판에서 변경해야합니다. 하나의 자동 열이있을 수 있으며해야합니다 잘못된 테이블 정의 : I 시도하고 내가 필드를 저장하지 못했습니다 다음과 같은 오류 "를 얻을 기본 키 필드 만들 때

: SQL은 테이블을 변경을 userbasereferenceNumber이 NOT NULL AUTO_INCREMENT 실패 smallint로 추가 키로 정의해야합니다 "

모든 테이블에 기본 키가 포함되어야하며 이는 내 실수입니다.하지만 아무도 도와 줄 수 없습니까?

+0

테이블의 정의 (CREATE TABLE ...)를 표시 할 수 있습니까? – Devart

+0

내 대답으로 문제가 해결 되었습니까? –

+0

늦은 응답에 대해 유감스럽게도 죄송합니다. Pez, Thanks – Mick

답변

2

동시에 키로 설정하지 않아서 and it must be defined as a key 부분에서 실패하므로 마지막에 키를 넣으십시오.

사용

ALTER TABLE tableName ADD autoIncrementColumn MEDIUMINT NOT NULL AUTO_INCREMENT KEY 

추가 정보는 기본 키를 제공하지 않는 경우

@Mick는, PEZ의 대답에 추가하려면 주석 요한에서, MySQL은 숨겨진 추가 기본 정수 자동 증가 키. 에 숨겨진 키를 덮어 쓰려면 alter table 문에 새 필드를 추가하고 동일한 줄에 새 PK를 할당해야합니다. 그렇지 않으면 숨겨진 PK가 변경을 차단합니다.

+0

@Mick, PEZ의 대답에 추가하려면 기본 키를 제공하지 않으면 MySQL은 숨겨진 기본 정수 자동 증가 키를 추가합니다. 숨겨진 키를 오버라이드 (override)하기 위해서 (때문에),'alter table' 스테이트먼트는 새로운 필드의 추가와 같은 행에 새로운 PK의 할당을 지정하지 않으면 안됩니다. 그렇지 않은 경우, 숨겨진 PK가 변경을 블록합니다. – Johan

+0

추가 세부 사항 주셔서 감사합니다 요한, 나는 이것을 깨닫지 못했습니다! –