2012-01-08 7 views
6

[Navicate for MySQL]에서 테이블을 만들지 만 완료 할 수 없습니다.이름에 유니 코드 문자가있는 테이블을 만들 수 없습니다.

이것은 내 코드입니다.

CREATE table `成绩表`(
`学号` char(10), 
`课号` char(10), 
`成绩` int, 
PRIMARY KEY(`学号`, `课号`) 
) 

error: 
[SQL] CREATE table `成绩表`(
`学号` char(10), 
`课号` char(10), 
`成绩` int, 
PRIMARY KEY(`学号`, `课号`) 
) 

[Err] 1005 - Can't create table '成绩表' (errno: 22) 
+0

무엇이 질문입니까? – jalf

+3

해당 문자는 유니 코드 기본 다국어 평면의 일부입니까? http://dev.mysql.com/doc/refman/5.1/en/identifiers.html –

+4

_ASCII NUL (U + 0000) 및 보조 문자 (U + 10000 이상)는 인용 부호가 있거나 인용 부호가없는 식별자로 사용할 수 없습니다 ._ 보낸 사람 위의 문서 링크 ... –

답변

1

MySQL manual에 따르면 테이블 및 열 이름을 U + FFFF까지 U + 0001에서 유니 코드를 처리 할 수 ​​- 그래서 당신을위한 이유는 뒷조사 필요할 것입니다 참조 :

오류를 메시지는 errno22이고 IIRC가 invalid argument의 OS 오류 코드로 변환됩니다. 즉, MySQL 자체의 깊은 곳에서 받아 들일 수없는 인수로 불리는 함수가 있음을 의미합니다.

나는이 함수가 C 런타임 및/또는 OS에서 온 것으로 의심되며 파일 시스템과 관련된 것일 가능성이 높습니다. 결국이 버그는 사용중인 OS/파일 시스템/설치와 상호 작용의 MySQL의 일부 모호한 행동 중 하나입니다 의미

...

나는 확실히 그 때문에 이것에 대해 MySQL은/​​오라클에 연락하는 것이 좋습니다

SO가 처리 할 수있는 것 이상으로 IMHO입니다 ...

관련 문제