2012-01-08 68 views
6

我在【Navicate for MySQL】中創建了一個表,但無法完成。無法使用名稱中的unicode字符創建表

這是我的代碼。

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 2012-01-08 15:28:06

+3

這些字符是unicode基礎多語言平面的一部分嗎? http://dev.mysql.com/doc/refman/5.1/en/identifiers.html – 2012-01-08 15:30:20

+4

_ASCII NUL(U + 0000)和補充字符(U + 10000或更高)不允許用帶引號或不帶引號的標識符。上面的文檔鏈接... – 2012-01-08 15:30:50

回答

1

根據MySQL manual它能夠從U + 0001處理的unicode達U + FFFF表和列名 - 這樣對你的理由看很可能需要一些挖掘:

錯誤消息說errno22,IIRC轉換爲invalid argument的操作系統錯誤代碼。這反過來又意味着,在MySQL本身內部的某個地方,有一些函數被調用,並且有一個它不能接受的參數。

我會懷疑被調用的函數來自C運行時和/或OS,並且它很可能與文件系統有關。

這又意味着它要麼是一個錯誤或M​​ySQL與您所使用的OS /文件系統/交互設置一些模糊的行爲......

我建議一定聯繫的MySQL/Oracle的這個,因爲這是恕我直言,遠遠超出了SO可以處理...