2009-11-16 3 views
1

방금 ​​MySQL mysqldump 도구를 사용하여 DDL을 생성 했으므로 다른 시스템에 정상적인 데이터베이스를 만들 수있었습니다. 내가 대상 컴퓨터에서 실행하려고하면이 오류를 얻을 :생성 된 MySQL DDL이 데이터베이스를 재생성하지 못합니다.

스크립트 라인 :

/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `friend` (
    `id` bigint(20) unsigned NOT NULL, 
    `dependentId` bigint(20) unsigned NOT NULL, 
    `friendPrimaryKeyInYourPhone` int(10) unsigned NOT NULL, 
    `friendNameInYourPhone` varchar(45) NOT NULL, 
    `date` datetime NOT NULL, 
    PRIMARY KEY (`id`,`friendPrimaryKeyInYourPhone`) USING BTREE, 
    UNIQUE KEY `idx_dependendentId_phonePk` (`dependentId`,`friendPrimaryKeyInYour 
Phone`), 
    KEY `idx_phonePk` (`friendPrimaryKeyInYourPhone`), 
    KEY `idx_dependentId` (`dependentId`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

: 28 키 열 'friendPrimaryKeyInYour 전화는'테이블

이 문을 실행에 존재하지 않는 MySQL이 어떻게이 DDL을 생성 할 수 있었는지와 몇 초 후에 무효라고 생각합니까?

답변

2

문제는 추가 공간이있는 것 같습니다 ...

MySQL이 잘못되었습니다. 텍스트 편집기 또는이 이슈를 만든 다른 도구를 사용할 수 있습니까?

편집 : 필드 이름의이 분할은 79 번째 문자에서 발생합니다 ... 많은 텍스트 프리젠 테이션 도구가 표준 witdth로 80을 사용하여 문제를 확인하는 것 같습니다.

제안 : MySQL의의 덤프에 의해 생성 된 매우 코드로

  • 봐. "말의 입"에서 직접 관측을 위해 16 진수 편집기 나 다양한 텍스트 편집기로 [결코 저장하지 마십시오]를 엽니 다.
  • 실제로 거기에 여분의 공간이 있다면, MySQL 데이터베이스 스키마를 살펴본 다음 어떻게 든 이상한 문자가 없는지 확인하십시오. ....?
  • 스크립트의 다른 부분을보고 비슷하게 긴 줄이 있는지 확인하십시오.
3

friendPrimaryKeyInYour Phone에 공백이 있습니다. 오류 메시지와 SQL 모두에 공백이 있습니다. 복사/붙여 넣기 (또는 일종의 줄 바꿈) 오류 여야하며 제거한 후 다시 시도하십시오.

+0

좋은 캐치! mysqldump에서 --result-file = droidwill.sql을 사용하고 있는데이 출력을 MySQL 스크립트 편집기에 직접 붙여 넣었다. 길을 따라 어딘가에 우뚝 솟아 야합니다. 고마워요 형 (들) – stanlick

관련 문제