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