paint-brush
Como usar tabelas temporárias no MariaDBpor@alejandroduarte
726 leituras
726 leituras

Como usar tabelas temporárias no MariaDB

por Alejandro Duarte4m2024/05/02
Read on Terminal Reader

Muito longo; Para ler

As tabelas temporárias são úteis para operações de dados transitórias. Uma tabela temporária existe apenas durante a sessão em que foi criada e outras sessões não poderão vê-la. Por exemplo, considere uma tabela chamada `produtos` em nosso banco de dados. Podemos criar uma tabela temporária que imite a estrutura dos `produtos'
featured image - Como usar tabelas temporárias no MariaDB
Alejandro Duarte HackerNoon profile picture

Vamos explorar como funcionam as tabelas temporárias no MariaDB. Primeiro, temos que nos conectar ao servidor. Por exemplo (use seus próprios detalhes de conexão):

 mariadb -h 127.0.0.1 -u root -p"RootPassword!" --database demo


Agora, só para ressaltar algo, vamos criar uma tabela padrão (permanente). Veja como:

 CREATE TABLE t ( c INT );


Esta tabela, t , persistirá no banco de dados mesmo depois de sairmos do cliente:

 exit


Quando reconectamos e verificamos as tabelas existentes usando SHOW TABLES; , a tabela t ainda estará listada:

 mariadb -h 127.0.0.1 -u root -p"RootPassword!" --database demo
 SHOW TABLES;
 +----------------+ | Tables_in_demo | +----------------+ | t | +----------------+


Tudo isso é bastante óbvio, mas agora vamos recriar esta tabela e tentar algo diferente:

 CREATE OR REPLACE TEMPORARY TABLE t ( c INT );


Observe a palavra-chave TEMPORARY . Após criar esta tabela, se executarmos SHOW TABLES; , ele aparece na lista. Podemos inserir dados nele, consultá-los e juntá-los a outras tabelas. Ela se comporta como uma tabela normal durante a sessão atual. Porém, se sairmos do cliente, reconecte e execute SHOW TABLES; novamente, a tabela temporária t não será listada.


Uma tabela temporária existe apenas durante a sessão em que foi criada e outras sessões não poderão vê-la.

Caso de uso para tabelas temporárias

As tabelas temporárias são bastante úteis para operações de dados transitórias. Por exemplo, considere uma tabela chamada products em nosso banco de dados:

 CREATE TABLE products ( id INT NOT NULL AUTO_INCREMENT, code VARCHAR(100) NOT NULL, name VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY code (code) )


Podemos criar uma tabela temporária que imite a estrutura dos products :

 CREATE TEMPORARY TABLE t LIKE products;


Podemos confirmar isso executando:

 DESCRIBE t;
 +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | code | varchar(100) | NO | UNI | NULL | | | name | varchar(250) | NO | | NULL | | | description | text | YES | | NULL | | +-------------+--------------+------+-----+---------+----------------+


Inicialmente, t estará vazio. No entanto, suponha que queiramos transferir alguns dados de products para t . Vamos supor que queremos incluir apenas produtos que contenham o número 0 em seu código:

 INSERT INTO t SELECT * FROM products WHERE code LIKE '%0%';


Depois de executar este comando, se consultarmos a tabela temporária t :

 SELECT * FROM t;
 +----+--------+------------------+---------------------------------------------------+ | id | code | name | description | +----+--------+------------------+---------------------------------------------------+ | 1 | BG2024 | BugBlaster | Eradicates software bugs with a single scan. | | 3 | FW001 | FireWhale | An oversized, comprehensive firewall solution. | | 4 | CLD404 | CloudNine Finder | Find your way back from cloud outages and errors. | +----+--------+------------------+---------------------------------------------------+

Vemos os dados filtrados.

Conclusão

As tabelas temporárias oferecem uma maneira poderosa de lidar com dados para processamento temporário sem afetar o armazenamento de dados persistente. Eles são particularmente úteis em cenários onde os dados precisam ser manipulados ou transformados temporariamente. Você pode usar tabelas permanentes para esse tipo de manipulação de dados, mas as tabelas temporárias são úteis quando você precisa de limpeza automática, risco reduzido de conflitos de nomenclatura, isolamento e segurança e gerenciamento de recursos para desempenho de consulta.