MariaDB / Cómo Usar Guiones y Puntos en Nombres de Bases de Datos
En MariaDB, para crear una base de datos con un nombre que contenga un guion (-) o un punto (.), rodea todo el nombre con comillas invertidas (`). Por ejemplo, escríbelo como CREATE DATABASE `test-test`; y CREATE DATABASE `test.test`;.
¿Por qué son necesarias las comillas invertidas?
Un nombre de base de datos es un identificador usado por MariaDB para distinguir objetos. Sin comillas invertidas, MariaDB no interpreta el guion en test-test como parte del nombre, y el punto en test.test puede interpretarse como un separador entre identificadores. Por lo tanto, ninguna de las siguientes declaraciones es sintaxis válida para crear la base de datos deseada.
CREATE DATABASE test-test;
CREATE DATABASE test.test;
Ejecutar cada sentencia resulta en un error de sintaxis. Los detalles del mensaje de error pueden variar dependiendo de la versión del servidor y del cliente. Las comillas invertidas son diferentes de las comillas simples (') utilizadas para representar cadenas. Las reglas para los identificadores en MariaDB se pueden encontrar en Documento de nombres de identificadores de MariaDB.
Creando y verificando una base de datos
El siguiente ejemplo se ejecuta en un cliente SQL conectado a un servidor MariaDB. Necesita permiso para crear una nueva base de datos, y si ya existe una base de datos con el mismo nombre, verifique su uso antes de crearla. La práctica debe realizarse en un entorno de prueba separado sin datos existentes.
CREATE DATABASE `test-test`;
CREATE DATABASE `test.test`;
SHOW DATABASES;
Si la creación es exitosa, puede ver los nombres en la lista. La creación puede fallar si el nombre ya existe o si no hay permisos suficientes. Si puede hacer que el nombre sea simple con letras en inglés, números y guiones bajos, puede establecerlo como test_test para reducir la confusión con las comillas y la compatibilidad de las herramientas.
Uso de nombres con puntos
Al seleccionar una base de datos, encierre todo el nombre, incluido el punto, entre comillas invertidas. Ejecutar las siguientes declaraciones muestra el nombre de la base de datos actual como test.test.
USE `test.test`;
SELECT DATABASE();
Al especificar tanto una base de datos como una tabla juntas, encierre cada una por separado y coloque un punto separador entre ellas. En el ejemplo a continuación, el primer punto forma parte del nombre de la base de datos, y el punto fuera de las comillas invertidas separa la base de datos de la tabla.
CREATE TABLE `test.test`.`example` (id INT);
INSERT INTO `test.test`.`example` VALUES (1);
SELECT id FROM `test.test`.`example`;
Si se ejecuta en una base de datos de práctica vacía separada, la consulta final devuelve 1. También se requieren privilegios para la creación de tablas y la inserción de datos. En contraste, si encierra todo como un solo par como `test.test.example`, representa un único identificador que contiene un punto, en lugar de dos identificadores diferentes.
Puntos a comprobar durante la operación
El hecho de que se pueda encerrar entre acentos graves no significa que todas las herramientas manejen los nombres con caracteres especiales de la misma manera. Pruebe por separado si la configuración de conexión de la aplicación, las herramientas de respaldo y restauración, las herramientas de gestión y las versiones del servidor admiten esos nombres. Por ejemplo, la funcionalidad de catálogo de MariaDB tiene restricciones sobre nombres de bases de datos que contienen puntos dependiendo del cliente utilizado para conectar. Para condiciones detalladas, consulte la documentación del catálogo de MariaDB .
La sensibilidad a mayúsculas y minúsculas de los nombres de la base de datos se ve afectada por el sistema de archivos del sistema operativo y la configuración de lower_case_table_names. No asuma que los nombres existentes usan diferentes combinaciones de mayúsculas y minúsculas; verifique los nombres reales. Dado que esta configuración se relaciona con la inicialización del servidor, no la cambie arbitrariamente en un servidor de producción existente con fines de solución de problemas.
Después de completar la práctica, verifique primero el nombre y el contenido antes de eliminar la base de datos. DROP DATABASE elimina las tablas y los datos dentro de ella, por lo que no ejecute los comandos de eliminación de ejemplo en bases de datos de servicio reales. Use los siguientes comandos solo en un entorno vacío que haya creado con fines de prueba.
DROP DATABASE `test-test`;
DROP DATABASE `test.test`;
Los ejemplos fueron confirmados en un MariaDB 12.3.3 aislado en Windows para la creación con o sin backticks, la selección de bases de datos y las consultas de tablas. En otras versiones o herramientas de gestión, verifique el comportamiento y los permisos de ese entorno.




