2010-04-29 5 views
3

데이터베이스가 이미 설정되었습니다. 내 사용자 이름 열에 대/소문자를 구분하도록 데이터 정렬을 변경하려고합니다. 로그인 매개 변수가 등록 된 것으로 제한됩니다.컬럼 조합 변경

나는이가 계속하지만 : #1025 - Error on rename of './yebutno_ybn/#sql-76dc_8581dc' to './yebutno_ybn/user' (errno: 150)

인해 관련 테이블에 외래 키 제약 조건이 ....이

어떤 아이디어가? 이 일을 PHP 측면과 함께 많은 번거 로움을 저장합니다!

SET FOREIGN_KEY_CHECKS = 0; 

당신이 조정을 완료 한 후, 다음을 다시 활성화 할 수 있습니다

덕분에, 스테판

+0

당신이 그것을 생각하지 못했을 경우에 고려해야 할 것에 대한 간단한 경고. 사용자 이름을 대소 문자를 구분하여 만들면 stefan이라는 사용자를 생성하여 누군가가 스테판을 스푸핑 할 가능성을 만들 수 있습니다. –

답변

1

FOREIGN_KEY_CHECKS를 사용 중지하는 것 외에도 외래 키를 삭제하고 물건을 만들어 재 작성 할 수 있습니다. 색인을 다시 작성하는 것이 실제 시간이 오래 걸린다면 아마 좋지 않을 것입니다.

데이터 정렬을 변경하면 일부 행이 고아가 될 수 있습니다. STEfan은 stefan과 더 이상 관련이 없으므로 진행하기 전에 조사하여 사건 발생 여부를 확인하고 그에 대한 조치를 취할 수 있습니다.

+0

아직 대중에게 공개되지 않았기 때문에 문제를 사전에 차단하고 있습니다. 정확한 사용자 이름을 사용하여 로그인 만 할 수 있도록 만들 예정이므로 데이터가 양식 세션에 저장 될 때 게시판 전체에서 동일합니다! 외래 키를 일시적으로 삭제할 수 있습니까? –

+0

ALTER TABLE tbl_name 외부 키 삭제 fk_symbol; – goat

1

난 당신이 같은 것을 사용하여 외래 키 제약 조건을 해제 할 수 있다고 생각합니다. 그러나 나는 db의 사본을 만들고 사본에 이것을 먼저 시도하는 것이 좋습니다.