Pregunta

Quiero crear una base de datos cuyo nombre tendrá caracteres especiales en el mismo. por ejemplo, (, -., _, @, #, $,%, &, *)

¿alguien puede ofrecer alguna salida en esto?

¿Fue útil?

Solución

Yo recomendaría encarecidamente que no crea bases de datos con estos nombres. Pero si es absolutamente necesario, aquí están las restricciones :

  • No identificador puede contener ASCII NUL (0x00) o un byte con un valor de 255.
  • nombres de base de datos, tablas y columnas no deben terminar con caracteres de espacio.
  • base de datos y nombres de tablas no pueden contener “/”, “\”, “”, o caracteres que no están permitidos en nombres de archivo.

Para crear una base de datos, puede hacer lo siguiente:

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

Otros consejos

Simple:. No te

puede escapar exóticos nombres de tabla utilizando la tilde en MySQL, pero no sabe si se puede usar lo en el interior de los acentos abiertos. Dará grandes cantidades de dolor durante el resto de su ciclo de vida del software.

Yo prefiero recomendar la creación de otra tabla para sostener que los nombres exóticos.

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

Respuesta corta:

  • No. Recomiendo encarecidamente mantener todos los identificadores que consisten en A-Z, a-z, 0-9 y _ caracteres. Puede guardar su nombre, "exótica" en una columna o comentario.

Respuesta larga:

  • Usted puede nombrar a su columnas, tablas, claves, claves foráneas, vistas, incluso bases de datos utilizando caracteres exóticos, pero es probable que esté a arrepentir en el futuro.
  • Si usted insiste en hacer eso, usted va a necesitar citando sus identificadores entre comillas sencillas ( ').
  • En caso de que su identificador tiene que contener otro `dentro, se puede escapar de ella afirmando dos veces (por ejemplo exotic`name ->` exotic``name`)
  • Para las cosas no sea tan simple, si utiliza caracteres exóticos (o incluso no convencionales) en el nombre de su base de datos (incluyendo un espacio sencillo), los personajes (que yo sepa, todo excepto az, AZ, 0-9 y _) GET escaparon a cuadrúpedos hexadecimal de 4 dígitos escapado por @, por ejemplo, `Mi database` se convierte en mi @ 0020database. Esta forma se utiliza como nombre de un directorios / archivos en los que sus bases de datos / tablas se almacenan, y por ejemplo, artículos en information_schema.INNODB_SYS_FOREIGN, por otra parte puede muy bien ser OS-dependiente (es decir, en teoría, es posible que desee ejecutar SHOW VARIABLES LIKE 'version_compile_os' para adaptarse a él). Ves - con nombres exóticos todo se vuelve mucho más complicado y al final no es realmente vale la pena
  • .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top