12
A
回答
26
我強烈建議您不要使用這些名稱創建數據庫。但是,如果你絕對必須,這裏有restrictions:
- 沒有標識符可以包含ASCII NUL(0x00),或是用255
- 數據庫,表和列名的值不應與空間結束字節字符。
- 數據庫和表名不能包含「/」,「\」,「。」或文件名中不允許的字符。
要創建一個數據庫,你可以做到以下幾點:
mysql> create database `[email protected]*database$name`;
3
簡單:不要。
您可以使用反引號在mysql中逃脫異國情調的表名,但我不知道是否可以使用任何反引號包圍。在軟件生命週期的其餘部分,它會帶來很大的痛苦。
我寧願建議創建另一個表來保存這些奇異的名字。
-- Example:
CREATE TABLE _DatabaseMetadata (
databaseName VARCHAR(255),
exoticName VARCHAR(255)
) DEFAULT CHARSET=utf8;
1
簡短的回答:
- 不要。我強烈建議保留所有由A-Z,a-z,0-9和_字符組成的標識符。您可以將您的「異國情調」名稱存儲在一列或評論中。
龍答:
- 您可以命名您的列,表鍵,外鍵,視圖,甚至數據庫利用外來字符,但機會是你會在將來後悔。
- 如果你堅持這樣做,你需要在反引號(`)中引用你的標識符。
- 如果你的標識必須包含另一個`內,您可以逃避它,說明它的兩倍(如外來`名稱 - > `異國` `名`)
- 對於事情並非如此簡單,如果你在你的數據庫名稱中使用外來的(甚至是非常規的)字符(包括簡單的空格),那些字符(據我所知,除az,AZ,0-9和_之外的所有內容)都會被轉換成4位十六進制四字節通過@逃脫,例如`我的數據庫`成爲我的@ 0020數據庫。該表格被用作存儲你的數據庫/表格的目錄/文件的名稱,例如information_schema.INNODB_SYS_FOREIGN中的項目還可能非常依賴操作系統(也就是說,理論上,您可能想要運行
SHOW VARIABLES LIKE 'version_compile_os'
以適應它)。你看 - 用奇特的名字,它會變得更加複雜,最終它並不值得。
相關問題
- 1. 選擇從數據庫使用名稱包含特殊字符
- 2. mysql數據庫中的特殊字符
- 3. 特殊數據庫創建 - MySQL
- 4. 使用PHP從MySQL數據庫中獲取特殊字符
- 5. 在mysql數據庫中使用python angularjs插入特殊字符
- 6. MySQL - 使用特殊字符
- 7. 使用「。」創建mysql數據庫在名稱(使用PHP)
- 8. 使用特殊字符的PHP變量/函數/類名稱
- 9. 數據庫的特殊字符問題
- 10. IsolatedStorage名稱中的特殊字符
- 11. Mysql使用動態數據庫名稱創建表
- 12. 來自MySQL數據庫的特殊字符的json_encode
- 13. 添加特殊字符H2數據庫
- 14. 特殊字符H2數據庫
- 15. MYSQL特殊字符
- 16. 特殊字符功能名稱在JavaScript
- 17. 目錄名稱包含特殊字符
- 18. 使用特殊字符的MySQL查詢
- 19. 檢索從MySQL數據庫中的特殊字符,PHP
- 20. 在MySQL數據庫中設置Zend Form中的特殊字符
- 21. MySQL數據庫的特殊字符(cyrilic,chinese)
- 22. 特殊字符存儲爲?在我的MySQL數據庫
- 23. CSV文件中的特殊字符加載到mysql數據庫
- 24. 在Joomla中顯示MySQL數據庫中的特殊字符
- 25. 如何使用特殊字符連接數據框的行名稱?
- 26. 如何讓mysql忽略名稱中的特殊字符
- 27. LaTeX - 使用hyperref&\ ref - 引用名稱中的特殊字符?
- 28. 在數據庫創建中使用「_」的Mysql是否有特殊含義?
- 29. 數據條目的MySQL使用%C3特殊字符
- 30. 在表名中的特殊字符在SQLite數據庫
我想動態創建它,我可以這樣做嗎?例如 - 我想給一個變量的數據庫名稱 set @a = name.surname; create database @a; – 2009-05-29 12:45:29
非常感謝安德烈。這是一個很大的幫助,因爲我需要它,儘管這是不可取的。謝謝:) – 2009-05-29 13:17:54