我想创建一个数据库,其姓名将具有特殊字符。例如, (., - , _, @, #, $, %, &, *)

任何人都可以提供任何出于这个?

有帮助吗?

解决方案

我强烈建议您不要创建数据库,这样的名字。但如果你必须绝对,这里有 限制:

  • 没有标识可以包含ASCII NUL(0x00)或一个字节的价值为255。
  • 数据库,表和列名称不应该结束与空间符。
  • 数据库,并表的名称不能包含"/", "\", ".", 或人物,都不允许在文件名称。

创建一个数据库,可以做到以下几点:

mysql> create database `really@strange*database$name`;

其他提示

简单:不

您的可以的使用反引号在mysql中逃脱异国情调的表名,但我不知道是否可以使用的任何的反引号包围。你的软件生命周期的剩余时间内它会给数额巨大的痛苦。

我宁愿建议创建另一个表来保存异国情调的名字。

-- Example:
CREATE TABLE _DatabaseMetadata (
    databaseName VARCHAR(255),
    exoticName VARCHAR(255)
) DEFAULT CHARSET=utf8;

简短的回答:

  • 不。我强烈建议保持所有的标识组成的A-Z,a-z,0-9和_符。你可以储存你的"异国"的名字在列或评论。

只要回答:

  • 你可以说出你的列表,钥匙,外键景,甚至数据库的使用异国情调的人物但是你会后悔的未来。
  • 如果你坚持这样做,你会需要引您的标识符,在反引号(`).
  • 在情况下您的标识已经包含的另一个`内,你可以逃脱,说明这两次(例如异国情调的'name-->`异国`的名字)
  • 为事情不是那么简单,如果使用异国情调的(或者甚至非常规)符的名称数据库(其中包括一个简单的空间),那些字符的(据我所知,除了a-z,A-Z,0-9和_)获得逃进4位数十六四胞胎逃脱的,例如`我的数据库`变成我的@0020database.这种形式是作为一名目录/文件在其数据库/表的储存,例如项目的信息.INNODB_SYS_FOREIGN,而且很可能是操作系统的依赖(这意味着,从理论上说,你可能会想要跑的 SHOW VARIABLES LIKE 'version_compile_os' 以适应它)。你看-有异国情调的名字这一切变得多,更加复杂和最终它不是真正值得的。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top