2009-11-04 6 views
2

테이블 중 하나에 RANGE라는 열이있는 아카이브에 오래된 데이터베이스 더미가 있습니다. 이 데이터베이스는 MySQL 4.1 또는 5.0에서 만들 수 있습니다. MySQL 5.1+에서 RANGE는 쿼리 언어의 키워드 일 것입니다. 이제는 테이블에 대한 스키마를 변경해야합니다. 그렇지 않으면 데이터가 전혀 없습니다. 확실한 것은 "RANGE"값을 가진 데이터가 아니라 행의 열이 "RANGE"라는 것입니다.MySQL 5.1 및 RANGE 관련 문제?

그래도 문제는 아니지만 기존 데이터베이스 아카이브 사용을 지원하려면 어떻게해야합니까?

일부 아카이브는 mysqldump 또는 일부 유사 항목의 출력이므로 SQL의 MySQL 버전과 유사합니다. 일부 아카이브는 MySQL의 데이터 디렉토리에있는 데이터베이스 디렉토리의 복사본입니다. 우리는 트랜잭션 지원이 필요 없기 때문에 MyISAM 엔진 만 사용하고 있습니다.

다시 복원해도 문제가 없습니까? 아니면 먼저 새 스키마로 변환하여 MySQL 5.1에서 사용하게 할 수 있습니까?

+0

이러한 "아카이브"의 형식은 무엇입니까? – longneck

+0

원본을 변경하지 않고 복사본을 만들고 복사본에서 RANGE 참조를 이스케이프합니다. –

답변

3

단어 범위의 사용을 둘러싼 문자를 사용할 수 없습니까?

+0

작동하지 않습니다. 그랬더라도 RANGE를 'RANGE'로 바꾸는 것과 같지 않을 것입니다. 따라서 그것을 인용하는 대신 완전히 다른 이름을 지정할 수도 있습니다. 그러나, 그것의 여전히 동일한 문제. –

+1

아니요 ','이 아닙니다. 차이점은 첫 번째가 작은 따옴표이고 두 번째가 역 따옴표입니다. – longneck

+0

확실히 Artem이 맞아 보이는군요. http://stackoverflow.com/questions/261455/using-backticks-around-field-names –