MariaDB / Como Usar Hífens e Pontos em Nomes de Bancos de Dados
No MariaDB, para criar um banco de dados com um nome que contenha um hífen (-) ou um ponto (.), envolva todo o nome com crases (`). Por exemplo, escreva assim: CREATE DATABASE `test-test`; e CREATE DATABASE `test.test`;.
Por que as crases são necessárias?
Um nome de banco de dados é um identificador usado pelo MariaDB para distinguir objetos. Sem aspas invertidas, o MariaDB não interpreta o hífen em test-test como parte do nome, e o ponto em test.test pode ser interpretado como um separador entre identificadores. Portanto, nenhuma das seguintes declarações é uma sintaxe válida para criar o banco de dados desejado.
CREATE DATABASE test-test;
CREATE DATABASE test.test;
Executar cada sentença resulta em um erro de sintaxe. Os detalhes da mensagem de erro podem variar dependendo da versão do servidor e do cliente. Aspas invertidas são diferentes de aspas simples (') usadas para representar strings. As regras para identificadores no MariaDB podem ser encontradas em Documento de Nomes de Identificadores do MariaDB.
Criando e Verificando um Banco de Dados
O exemplo a seguir é executado em um cliente SQL conectado a um servidor MariaDB. Você precisa de permissão para criar um novo banco de dados e, se um banco de dados com o mesmo nome já existir, verifique seu uso antes de criá-lo. A prática deve ser feita em um ambiente de teste separado, sem dados existentes.
CREATE DATABASE `test-test`;
CREATE DATABASE `test.test`;
SHOW DATABASES;
Se a criação for bem-sucedida, você poderá ver os nomes na lista. A criação pode falhar se o nome já existir ou se houver permissão insuficiente. Se você puder tornar o nome simples com letras em inglês, números e sublinhados, pode estabelecê-lo como test_test para reduzir confusão com aspas e compatibilidade de ferramentas.
Usando Nomes com Pontos
Ao selecionar um banco de dados, coloque todo o nome, incluindo o ponto, entre crases. A execução das instruções a seguir exibe o nome do banco de dados atual como test.test.
USE `test.test`;
SELECT DATABASE();
Ao especificar um banco de dados e uma tabela juntos, coloque cada um separadamente entre crases e coloque um ponto separador entre eles. No exemplo abaixo, o primeiro ponto faz parte do nome do banco de dados, e o ponto fora das crases separa o banco de dados da tabela.
CREATE TABLE `test.test`.`example` (id INT);
INSERT INTO `test.test`.`example` VALUES (1);
SELECT id FROM `test.test`.`example`;
Se executado em um banco de dados de prática vazio separado, a consulta final retorna 1. Também são necessários privilégios para criação de tabela e inserção de dados. Em contraste, se você colocar tudo como um único par, como `test.test.example`, isso representa um único identificador contendo um ponto, em vez de dois identificadores diferentes.
Pontos a verificar durante a operação
Só porque algo pode ser colocado entre crases, não significa que todas as ferramentas lidam com nomes com caracteres especiais da mesma forma. Teste separadamente se as configurações de conexão do aplicativo, ferramentas de backup e restauração, ferramentas de gerenciamento e versões de servidor suportam esses nomes. Por exemplo, a funcionalidade de catálogo do MariaDB possui restrições sobre nomes de banco de dados que contêm pontos, dependendo do cliente usado para se conectar. Para condições detalhadas, consulte a documentação do catálogo do MariaDB .
A sensibilidade a maiúsculas e minúsculas dos nomes de banco de dados é afetada pelo sistema de arquivos do sistema operacional e pelas configurações do lower_case_table_names. Não presuma que os nomes existentes usam diferentes combinações de maiúsculas e minúsculas; verifique os nomes reais. Como essa configuração está relacionada à inicialização do servidor, não a altere arbitrariamente em um servidor de produção existente para fins de resolução de problemas.
Após concluir a prática, verifique primeiro o nome e o conteúdo antes de excluir o banco de dados. O DROP DATABASE exclui as tabelas e os dados contidos nele, portanto, não execute os comandos de exclusão de exemplo em bancos de dados de serviço reais. Use os seguintes comandos apenas em um ambiente vazio que você criou para fins de teste.
DROP DATABASE `test-test`;
DROP DATABASE `test.test`;
Os exemplos foram confirmados em um MariaDB 12.3.3 isolado no Windows para criação com ou sem crases, seleção de banco de dados e consultas de tabela. Em outras versões ou ferramentas de gerenciamento, verifique o comportamento e as permissões desse ambiente.




