Pergunta

Eu quero criar um banco de dados cujo nome terá caracteres especiais nele. por exemplo, (., -, _, @, #, $,%, &, *)

Alguém pode fornecer qualquer saída sobre este assunto?

Foi útil?

Solução

Eu recomendaria fortemente que você não criar bancos de dados com nomes. Mas se você absolutamente necessário, aqui estão os restrições :

  • No identificador pode conter ASCII NUL (0x00) ou um byte com um valor de 255.
  • Banco de dados, tabela e nomes de coluna não deve terminar com caracteres de espaço.
  • Banco de dados e nomes de tabela não pode conter “/”, “\”, “”, ou caracteres que não são permitidos em nomes de arquivo.

Para criar um banco de dados, você pode fazer o seguinte:

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

Outras dicas

Simples:. Do not

Você pode escapar nomes de tabela exóticas usando a crase no mysql, mas eu não sei se você pode usar qualquer dentro dos acentos graves. Vai dar grandes quantidades de dor durante o resto do seu ciclo de vida do software.

Eu prefiro recomendar a criação de outra mesa para segurar que os nomes exóticos.

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

Resposta curta:

  • Não faça isso. Eu recomendo fortemente para manter todos os identificadores consistindo de A-Z, a-z, 0-9 e _ caracteres. Você pode armazenar o seu nome "exótico" em uma coluna ou comentário.

Resposta longa:

  • Você pode nomear seu colunas, tabelas, chaves, chaves estrangeiras, visões, até mesmo bancos de dados usando personagens exóticos, mas as chances são Você vai se arrepender no futuro.
  • Se você insistir em fazer isso, você vai precisar citando seus identificadores em acentos graves ( `).
  • No caso do seu identificador deve conter um outro `dentro, você pode escapar dela afirmando que duas vezes (por exemplo exotic`name ->` exotic``name`)
  • Para as coisas para não ser tão simples, se você usar personagens exóticos (ou até mesmo não-convencionais), em nome de seu banco de dados (incluindo um espaço simples), os personagens (que eu saiba, tudo, exceto az, AZ, 0-9 e _) se escapou para quadrigêmeos hexadecimais de 4 dígitos escapou por @, por exemplo, `Meu database` se torna o meu @ 0020database. Este formulário é usado como um nome de um diretórios / arquivos em que seus bancos de dados / tabelas são armazenados, e por exemplo, itens em information_schema.INNODB_SYS_FOREIGN, além disso pode muito bem ser OS-dependente (ou seja, teoricamente, você pode querer executar SHOW VARIABLES LIKE 'version_compile_os' se adaptar a ele). Você vê -. Com nomes exóticos tudo fica muito, muito mais complicado e, no final, não é realmente vale a pena
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top