2012-01-08 38 views
6

Tôi tạo một bảng trong 【Navicate for MySQL】 , nhưng không thể hoàn thành nó.Không thể tạo bảng có ký tự unicode trong tên

đây là mã của tôi.

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

Câu hỏi là gì? – jalf

+3

Các nhân vật đó có phải là một phần của máy bay đa ngôn ngữ cơ bản unicode không? http://dev.mysql.com/doc/refman/5.1/en/identifiers.html –

+4

_ASCII NUL (U + 0000) và các ký tự bổ sung (U + 10000 trở lên) không được phép trong số nhận dạng được trích dẫn hoặc không được trích dẫn._ Từ liên kết doc ở trên ... –

Trả lời

1

Theo MySQL manual nó là khả năng xử lý unicode từ U + 0001 đến U + FFFF cho bảng và cột tên - vì vậy lý do bạn thấy rất có thể sẽ cần một số đào:

Các lỗi thông báo cho biết errno22 mà IIRC dịch sang mã lỗi hệ điều hành cho invalid argument. Điều đó có nghĩa là một nơi nào đó dọc theo con đường sâu bên trong MySQL chính nó có một số chức năng được gọi là với một đối số mà nó không thể chấp nhận.

Tôi nghi ngờ rằng hàm được gọi là từ thời gian chạy và/hoặc hệ điều hành C và có khả năng là hệ thống tệp có liên quan nhất.

Điều đó lần lượt có nghĩa là nó là một trong hai lỗi hoặc một số hành vi che khuất của MySQL tương tác với hệ điều hành/hệ thống tập tin/thiết lập bạn đang sử dụng ...

tôi sẽ khuyên bạn nên chắc chắn liên hệ với MySQL/Oracle về vấn đề này vì đó là IMHO vượt xa những gì SO có thể xử lý ...

Các vấn đề liên quan