Olá,
Geralmente utilizo uma técnica muito simples quando preciso extrair e importar apenas uma tabela que está dentro de um dump que foi gerado pelo mysqldump. A técnica consiste em gerar um arquivo SQL específico contendo apenas a tabela que eu quero. Como demonstrarei a seguir, utilizarei o comando grep do Linux para extrair uma tabela específica contida no arquivo bd01.sql que contém um dump de todas as tabelas e dados do banco de dados bd01.
[mysql@]# grep -n "Table structure" bd01.sql
24:-- Table structure for table `tb_usuarios`
52:-- Table structure for table `tb_historico`
77:-- Table structure for table `tb_adesao`
110:-- Table structure for table `tb_veiculos`
208:-- Table structure for table `tb_atendimento`
255:-- Table structure for table `tb_atendimento_itens`
310:-- Table structure for table `tb_bairros`
334:-- Table structure for table `tb_boletos`
369:-- Table structure for table `tb_carencia`
400:-- Table structure for table `tb_cliente_pj`
427:-- Table structure for table `tb_clientes`
512:-- Table structure for table `tb_parametros`
536:-- Table structure for table `tb_consultores`
582:-- Table structure for table `tb_corretores`
638:-- Table structure for table `tb_credenciados`
710:-- Table structure for table `tb_decl`
737:-- Table structure for table `tb_desbloqueio`
761:-- Table structure for table `tb_desbloqueio_cli`
786:-- Table structure for table `tb_pecas`
815:-- Table structure for table `tb_manutencao_controle`
847:-- Table structure for table `tb_excecao`
872:-- Table structure for table `tb_forma_pgto`
896:-- Table structure for table `tb_tarefas`
935:-- Table structure for table `tb_gastos`
996:-- Table structure for table `tb_liberacao`
1031:-- Table structure for table `tb_lote`
1056:-- Table structure for table `tb_plano_tabela`
1080:-- Table structure for table `tb_mensalidades`
1147:-- Table structure for table `tb_nfse`
1188:-- Table structure for table `tb_obs_cliente`
1222:-- Table structure for table `tb_pagamentos`
1307:-- Table structure for table `tb_parceiros`
1374:-- Table structure for table `tb_veiculos_controle`
1407:-- Table structure for table `tb_orcamentos`
1435:-- Table structure for table `tb_uf`
1464:-- Table structure for table `tb_carroceria_controle`
1497:-- Table structure for table `tb_plano_veiculo`
1534:-- Table structure for table `tb_plano_procedimento`
1564:-- Table structure for table `tb_planos`
1592:-- Table structure for table `tb_portes`
1621:-- Table structure for table `tb_precos`
1647:-- Table structure for table `tb_procedimentos`
1687:-- Table structure for table `tb_procedimentos_diario`
1714:-- Table structure for table `tb_procedimentos_mensal`
1741:-- Table structure for table `tb_profissional`
1770:-- Table structure for table `tb_oficinas`
1794:-- Table structure for table `tb_reajuste_mensalidade`
1826:-- Table structure for table `tb_reajuste_procedimentos`
1859:-- Table structure for table `tb_remessa`
Como demonstrado acima, o resultado do comando grep exibe exatamente o número que dará início a importação de cada tabela dentro do arquivo bd01.sql. Para eu importar apenas a tabela tb_planos, verifico que a mesma se inicia na linha 1564 e que termina uma linha antes de iniciar a próxima tabela que está na linha 1592. Portanto, irei gerar um novo arquivo contendo apenas a estrutura e dados da tabela da linha 1564 até 1591 conforme a seguir.
[mysql@]# sed -n '1564,1591 p' bd01.sql > tb_planos.sql
Pronto. Podemos ver abaixo que o arquivo tb_planos.sql contém os comandos necessários para importar a tabela e seus dados.
[mysql@]# cat tb_planos.sql
-- Table structure for table `tb_planos`
--
DROP TABLE IF EXISTS `tb_planos`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tb_planos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome_plano` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
`valor` decimal(5,2) NOT NULL,
`usuario` int(11) DEFAULT NULL,
`data` date DEFAULT NULL,
`flag_unico` char(1) COLLATE latin1_general_ci DEFAULT 'N',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `tb_planos`
--
LOCK TABLES `tb_planos` WRITE;
/*!40000 ALTER TABLE `tb_planos` DISABLE KEYS */;
INSERT INTO `tb_planos` VALUES
(1,'BASIC',10.15,NULL,NULL,'N'),
(2,'MEDIUM',15.20,NULL,NULL,'N'),
(3,'GOLD',25.99,NULL,NULL,'N'),
(4,'PLATINUM',35.45,NULL,NULL,'N'),
(5,'SOFT',22.10,NULL,NULL,'N'),
(6,'STANDARD',40.00,NULL,NULL,'N'),
(7,'SILVER',99.20,NULL,NULL,'N'),
(8,'MASTER',113.40,NULL,NULL,'N'),
(9,'BLUE',5.15,NULL,NULL,'N'),
(10,'ESSENTIAL',20.15,NULL,NULL,'N'),
(11,'MAX',50.00,NULL,NULL,'N'),
(100,'DIAMOND',60.00,NULL,'2019-11-01','N');
/*!40000 ALTER TABLE `tb_planos` ENABLE KEYS */;
UNLOCK TABLES;
--
Para realizar a importação da tabela para o meu banco de dados, irei realizar a operação a seguir.
[mysql@]$ mysql -uroot -psenha -D bd01 < tb_planos.sql
Pronto. Após a importação podemos ver abaixo que a tabela foi carregada para dentro do banco de dados bd01.
[mysql@]$ mysql -uroot -psenha
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4911066
Server version: 5.6.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use bd01
Database changed
mysql> select * from tb_planos;
+-----+------------+--------+---------+------------+------------+
| id | nome_plano | valor | usuario | data | flag_unico |
+-----+------------+--------+---------+------------+------------+
| 1 | BASIC | 10.15 | NULL | NULL | N |
| 2 | MEDIUM | 15.20 | NULL | NULL | N |
| 3 | GOLD | 25.99 | NULL | NULL | N |
| 4 | PLATINUM | 35.45 | NULL | NULL | N |
| 5 | SOFT | 22.10 | NULL | NULL | N |
| 6 | STANDARD | 40.00 | NULL | NULL | N |
| 7 | SILVER | 99.20 | NULL | NULL | N |
| 8 | MASTER | 113.40 | NULL | NULL | N |
| 9 | BLUE | 5.15 | NULL | NULL | N |
| 10 | ESSENTIAL | 20.15 | NULL | NULL | N |
| 11 | MAX | 50.00 | NULL | NULL | N |
| 100 | DIAMOND | 60.00 | NULL | 2019-11-01 | N |
+-----+------------+--------+---------+------------+------------+
12 rows in set (0.00 sec)
Nenhum comentário:
Postar um comentário