<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Iago Frota</title>
    <description>The latest articles on DEV Community by Iago Frota (@iagofrota).</description>
    <link>https://dev.to/iagofrota</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F319353%2F19a377ef-e056-4d54-a828-209dbe4e9719.JPG</url>
      <title>DEV Community: Iago Frota</title>
      <link>https://dev.to/iagofrota</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iagofrota"/>
    <language>en</language>
    <item>
      <title>[shorts] Comando nohup Linux — Deixar executando comandos após sair no Linux</title>
      <dc:creator>Iago Frota</dc:creator>
      <pubDate>Fri, 24 Mar 2023 02:17:54 +0000</pubDate>
      <link>https://dev.to/iagofrota/shorts-comando-nohup-linux-deixar-executando-comandos-apos-sair-no-linux-3jf0</link>
      <guid>https://dev.to/iagofrota/shorts-comando-nohup-linux-deixar-executando-comandos-apos-sair-no-linux-3jf0</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Já precisaram deixar rodando um certo script em segundo plano no Linux e a sessão do seu usuário caiu e você perdeu a execução?&lt;/p&gt;

&lt;p&gt;Ou, precisaram deixar executando um script em segundo plano e precisaram sair da sua sessão?&lt;/p&gt;

&lt;p&gt;Sua solução é o comando nohup! 😉&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre o comando nohup
&lt;/h2&gt;

&lt;p&gt;O comando nohup irá ignorar qualquer sinal de hangup e irá continuar o seu script e irá gravar a saída no arquivo nohup.out no diretório que o comando nohup foi executado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explicando o comando
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;nohup &lt;/span&gt;watchdog.sh &amp;amp;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;nohup&lt;/code&gt; Comando&lt;/p&gt;

&lt;p&gt;&lt;code&gt;watchdog.sh&lt;/code&gt; Script ou comando que será executado&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;amp;&lt;/code&gt; Comando para rodar script ou comando em background&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Espero que o artigo seja útil como foi para mim. Há algumas semanas atrás precisei deixar um script rodando sem ficar logado na máquina e não sabia como fazer isso. Pesquisei e achei essa lindeza!&lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>Fazer backup de uma tabela de um banco de dados</title>
      <dc:creator>Iago Frota</dc:creator>
      <pubDate>Fri, 24 Mar 2023 02:12:11 +0000</pubDate>
      <link>https://dev.to/iagofrota/fazer-backup-de-uma-tabela-de-um-banco-de-dados-5cc9</link>
      <guid>https://dev.to/iagofrota/fazer-backup-de-uma-tabela-de-um-banco-de-dados-5cc9</guid>
      <description>&lt;p&gt;Algumas vezes precisei fazer um backup bem específico de somente uma tabela de um banco de dados, seja para me precaver de um possível erro na criação da tabela, proteger os registros de uma alteração em lote ou a criação de uma nova tabela baseada numa consulta beeem específica.&lt;/p&gt;

&lt;h2&gt;
  
  
  Backup de uma única tabela
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- Fazer o backup de uma única tabela &lt;/span&gt;

&lt;span class="k"&gt;create&lt;/span&gt; &lt;span class="k"&gt;table&lt;/span&gt; 
&lt;span class="n"&gt;auditoria_insert_bkp&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;auditoria_insert&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Variações
&lt;/h2&gt;

&lt;p&gt;Existem outras variações dependendo da sua necessidade e motivações como, por exemplo, instruções com JOIN, WHERE, etc.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- Criando uma tabela baseada na coluna 'codigo_old' da tabela 'cor' &lt;/span&gt;

&lt;span class="k"&gt;create&lt;/span&gt; &lt;span class="k"&gt;table&lt;/span&gt; &lt;span class="n"&gt;cor_bkp&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="n"&gt;codigo_old&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;cor&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;-- Criando uma tabela filtrando pela coluna 'pessoa' da tabela 'auditoria_insert' &lt;/span&gt;

&lt;span class="k"&gt;create&lt;/span&gt; &lt;span class="k"&gt;table&lt;/span&gt; &lt;span class="n"&gt;auditoria_insert_tabela_pessoa&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
                                                &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;auditoria_insert&lt;/span&gt;
                                                &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;tabela&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'pessoa'&lt;/span&gt;
                                                &lt;span class="k"&gt;order&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;tabela&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;-- Criando uma tabela filtrando pela coluna 'pessoa', pelo intervalo de data da coluna 'data' e ordenando pela coluna 'tabela' da tabela 'auditoria_insert' &lt;/span&gt;

&lt;span class="k"&gt;create&lt;/span&gt; &lt;span class="k"&gt;table&lt;/span&gt; &lt;span class="n"&gt;auditoria_insert_tabela_pessoa&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
                                                &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;auditoria_insert&lt;/span&gt;
                                                &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;tabela&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'pessoa'&lt;/span&gt;
                                                  &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="k"&gt;data&lt;/span&gt; &lt;span class="k"&gt;between&lt;/span&gt; &lt;span class="s1"&gt;'2022-01-01'&lt;/span&gt; &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="s1"&gt;'2022-05-26'&lt;/span&gt;
                                                &lt;span class="k"&gt;order&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;tabela&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Para Consulta
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.techonthenet.com/sql/tables/create_table2.php"&gt;SQL: CREATE TABLE AS Statement&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.w3schools.com/sql/sql_create_table.asp"&gt;SQL CREATE TABLE Statement&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.w3schools.com/sql/sql_select_into.asp"&gt;SQL SELECT INTO Statement&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[shorts] Acompanhar alterações em um arquivo com o comando Tail Linux</title>
      <dc:creator>Iago Frota</dc:creator>
      <pubDate>Fri, 24 Mar 2023 02:02:17 +0000</pubDate>
      <link>https://dev.to/iagofrota/shorts-acompanhar-alteracoes-em-um-arquivo-com-o-comando-tail-linux-25h1</link>
      <guid>https://dev.to/iagofrota/shorts-acompanhar-alteracoes-em-um-arquivo-com-o-comando-tail-linux-25h1</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;O comanda &lt;code&gt;tail&lt;/code&gt; é aquele utilizado para ler o conteúdo do final de um arquivo de log, por exemplo. Ele tem várias opções que podem serem úteis nosso dia a dia. Uma as opções que acho que muito útil, é acompanhar o log de algum serviço que estou executando.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como Usar
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;tail&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; nome_do_arquivo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Executando o comando acima, o conteúdo do final do arquivo ficará sendo atualizado em tempo real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Isso foi uma dica rápida e que eu utilizo muito no meu dia. Espero que tenha sido útil para você. Pretendo fazer essas dicas mais vezes por ser algo rápido de se fazer!&lt;/p&gt;

&lt;p&gt;Até mais!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>linux</category>
    </item>
    <item>
      <title>Atalhos para ser mais produtivo no PHPStorm</title>
      <dc:creator>Iago Frota</dc:creator>
      <pubDate>Fri, 24 Mar 2023 01:40:00 +0000</pubDate>
      <link>https://dev.to/iagofrota/atalhos-para-ser-mais-produtivo-no-phpstorm-3f9f</link>
      <guid>https://dev.to/iagofrota/atalhos-para-ser-mais-produtivo-no-phpstorm-3f9f</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;As ferramentas da &lt;a href="https://www.jetbrains.com/"&gt;Jetbrains&lt;/a&gt; são sensacionais e ninguém dúvida disso. Já faz muito tempo utilizo algumas ferramentas da Jetbrains e a que mais utilizei foi o &lt;a href="https://www.jetbrains.com/phpstorm/"&gt;PHPStorm&lt;/a&gt;. Admito que não consigo trocar essa ferramenta por outra. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PtwLLRk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PtwLLRk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png" alt="JetBrains Logo (Main) logo" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Já tentei trocar pelo &lt;a href="https://code.visualstudio.com/"&gt;VSCode&lt;/a&gt;, mas foi frustrante pois o PHPStorm reúne todas as funcionalidade que preciso.&lt;/p&gt;

&lt;p&gt;Com o tempo, fui me tornando mais ágil com a ferramenta e uma das coisas que ajudou nisso foram os atalhos.&lt;/p&gt;

&lt;p&gt;Bora lá &lt;/p&gt;

&lt;h2&gt;
  
  
  Find and replace
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Para pesquisar&lt;/strong&gt; no arquivo &lt;code&gt;Ctrl + F&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Para pesquisar&lt;/strong&gt; em todo o projeto &lt;code&gt;Ctrl + Shift + F&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Para dar replace&lt;/strong&gt; no arquivo &lt;code&gt;Ctrl + R&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Para dar replace&lt;/strong&gt; em todo o projeto &lt;code&gt;Ctrl + Shift + R&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Upper case e Lower case
&lt;/h2&gt;

&lt;p&gt;Para alterar um texto para caixa alta ou baixa, basta selecionar e digitar &lt;code&gt;Ctrl + Shift + U&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Selecionar um trecho
&lt;/h2&gt;

&lt;p&gt;Utilizo muito quando quero selecionar trechos idênticos como, por exemplo, nomes de variáveis ou métodos. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Para selecionar "&lt;em&gt;step by step&lt;/em&gt;"&lt;/strong&gt;, selecione o trecho e digite &lt;code&gt;Alt + J&lt;/code&gt;&lt;br&gt;
Para selecionar todos as ocorrência no arquivo, selecione o trecho e digite &lt;code&gt;Ctrl + Alt + J&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Duplicar linha
&lt;/h2&gt;

&lt;p&gt;Para duplicar uma linha ou um trecho selecionado, digite &lt;code&gt;Ctrl + D&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Navegação por declaração
&lt;/h2&gt;

&lt;p&gt;Para ir até onde foi implementado o código, coloque o curso em cima e digite &lt;code&gt;Ctrl + B&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bookmarks
&lt;/h2&gt;

&lt;p&gt;Admito que utilizo muito pouco, mas quando preciso é uma mão na roda. &lt;/p&gt;

&lt;p&gt;Como o nome diz, é uma marcador para uma posição do código. Com isso, você terá uma atalho para um ponto específico do seu código. Uma referência seria a marcação de onde você parou em um livro.&lt;/p&gt;

&lt;p&gt;Para marcar, digite &lt;code&gt;Ctrl + Shift + [número]&lt;/code&gt;&lt;br&gt;
Para acessar os seus marcadores, digite &lt;code&gt;Shift + F11&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ir para linha tal
&lt;/h2&gt;

&lt;p&gt;Teletransportar para uma linha específica, digite &lt;code&gt;Ctrl + G&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Procurar um trecho em todo o banco de dados
&lt;/h2&gt;

&lt;p&gt;Apesar de não ser algo interessante a se fazer em um banco, o PHPStorm fornece a possibilidade de vocês pesquisar um trecho em todas as tabelas de um banco (Full-text Search). Para isso, clique em qual banco deverá ser feito a pesquisa e digite &lt;code&gt;Ctrl + Shift + Alt + F&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mover Linhas
&lt;/h2&gt;

&lt;p&gt;Para mover linhas para baixo ou para cima, digite &lt;code&gt;Ctrl + Shift + Seta pra cima / Seta pra baixo&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Apagar Linha Inteira
&lt;/h2&gt;

&lt;p&gt;Para a apagar uma linha inteira, coloque o curso na linha a ser apagada e digite &lt;code&gt;Ctrl + Y&lt;/code&gt;`&lt;/p&gt;

&lt;h2&gt;
  
  
  Search Everywhere
&lt;/h2&gt;

&lt;p&gt;Para pesquisar qualquer coisa dentro do projeto e isso inclui as funcionalidades do PHPStorm. Para fazer isso, digite &lt;code&gt;Shift + Shift&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Debug
&lt;/h2&gt;

&lt;p&gt;No modo Debug, conseguimos seguir ou voltar com atalhos, segue eles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Modo Debug
&lt;/h3&gt;

&lt;p&gt;Para ativar o Debug, digite &lt;code&gt;Alt + Shift + F9&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step Into
&lt;/h3&gt;

&lt;p&gt;Executa cada trecho de código. Muito bom quando queremos detalhes do que está acontecendo. Para isso, digite &lt;code&gt;F7&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step Over
&lt;/h3&gt;

&lt;p&gt;Quando não queremos muitos detalhes, utilizamos o &lt;em&gt;Step Over&lt;/em&gt;. Para isso, digite &lt;code&gt;F8&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step Out
&lt;/h3&gt;

&lt;p&gt;Há momentos que não queremos inspecionar um certo método. Para sairmos, façamos assim &lt;code&gt;Shift F8&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Dicas
&lt;/h2&gt;

&lt;p&gt;Sugiro instalar o plugin &lt;a href="https://plugins.jetbrains.com/plugin/9792-key-promoter-x?_ga=2.78026772.1834597066.1679616183-1146663799.1658431834&amp;amp;_gl=1*1myle3f*_ga*MTE0NjY2Mzc5OS4xNjU4NDMxODM0*_ga_9J976DJZ68*MTY3OTYxNjE4My4xMS4xLjE2Nzk2MTY2MjIuNjAuMC4w"&gt;Key Promoter X&lt;/a&gt; para ter uma noção de quais funcionalidades mais utiliza e tentar fazer com atalhos. &lt;/p&gt;

&lt;p&gt;Uma outra dica seria visitar a &lt;a href="https://www.jetbrains.com/help/phpstorm/getting-started.html"&gt;Wiki&lt;/a&gt; do PHPStorm e dar uma passeada para saber o que existe (tem muita coisa!). Se quiser saber mais sobre outros atalhos, acesse no PHPStorm o menu "Help&amp;gt;Keyboard Shortcuts PDF".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--agxA5cng--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/14c6ipe0vos30fjert7w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--agxA5cng--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/14c6ipe0vos30fjert7w.png" alt="Image description" width="238" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Por fim, espero que seja útil essa lista de atalhos. Esses são os atalhos que utilizo com relativa frequência. Se tiver mais dicas ou correções, por favor, não se acanhe!&lt;/p&gt;

</description>
      <category>tooling</category>
      <category>productivity</category>
      <category>phpstorm</category>
    </item>
    <item>
      <title>Wakatime</title>
      <dc:creator>Iago Frota</dc:creator>
      <pubDate>Fri, 24 Mar 2023 01:34:08 +0000</pubDate>
      <link>https://dev.to/iagofrota/wakatime-2ng</link>
      <guid>https://dev.to/iagofrota/wakatime-2ng</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RxaMb03C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cx8t2tkuodobq9rlnsk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RxaMb03C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cx8t2tkuodobq9rlnsk6.png" alt="Image description" width="880" height="158"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Já faz um tempo que utilizo WakaTime para acompanhar minhas horas trabalhadas em cada projeto, seja ele do meu trabalho ou freela. Achei que seria útil eu fazer um pequeno artigo sobre essa ferramenta sensacional.&lt;/p&gt;

&lt;h1&gt;
  
  
  Sobre a Dashboard
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3s_ZG_Kg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dfauagur7mamwtkbzt65.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3s_ZG_Kg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dfauagur7mamwtkbzt65.png" alt="Image description" width="880" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O WakaTime possui uma Dashboard que te dá uma visão muito interessante dos projetos que você está trabalhando. Logo de cara, você tem:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;um gráfico de linha por horas trabalhadas por projetos,&lt;/li&gt;
&lt;li&gt;um gráfico de barras verticais com as horas totais por dia,&lt;/li&gt;
&lt;li&gt;um gráfico com a hora do dia que você trabalhou e em qual projeto,&lt;/li&gt;
&lt;li&gt;um gráfico de média diária (aqui você acompanha se está dentro da sua média - sensacional!),&lt;/li&gt;
&lt;li&gt;um gráfico em pizza com as linguagens que você trabalhou em horas e&lt;/li&gt;
&lt;li&gt;um gráfico em pizza com os editores ou IDEs que você trabalhou.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tudo isso de forma bem prática e acessível logo de cara! Os gráficos possuem certas interações como, por exemplo, ver os detalhes.&lt;/p&gt;

&lt;h1&gt;
  
  
  Sobre os Goals (Metas)
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yc1bt4Wg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fooazm6lj1cblnzq5co1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yc1bt4Wg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fooazm6lj1cblnzq5co1.png" alt="Image description" width="880" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aqui, é uma das partes mais sensacionais que eu acho do Wakatime. Você pode criar metas baseado em:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;horas gerais,&lt;/li&gt;
&lt;li&gt;por projeto,&lt;/li&gt;
&lt;li&gt;por linguagem (particularmente útil quando se está estudando uma nova linguagem) e&lt;/li&gt;
&lt;li&gt;utilizando um editor (…)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rJ_z-0OX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nsu1w1pn1ngu8byi19pd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rJ_z-0OX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nsu1w1pn1ngu8byi19pd.png" alt="Image description" width="596" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Você pode escolher os dias que não serão contabilizados nas suas metas, por exemplo, Domingo.&lt;/p&gt;

&lt;p&gt;No meu caso, tenho metas por projeto e por linguagem. Metas por projeto eu uso para acompanhar minhas horas no meus projetos pessoais e freelas. Já para metas por linguagem, eu utilizo para fins didáticos, por exemplo, hoje, eu estou estudando Angular (angular 2+) e eu acompanho minhas horas estudadas pelo Wakatime! Tudo isso escolhendo os dias que não deverão serem contabilizados. Sensacional, não?!&lt;/p&gt;

&lt;h1&gt;
  
  
  Integração com editores de texto e IDEs
&lt;/h1&gt;

&lt;p&gt;Outro ponto bacana! Ele se integra com os editores e IDEs mais famosos que temos, como o VSCode e PHPStorm. No PHPStorm, eu precisei instalar o plugin do WakaTime e colocar a API KEY no plugin e pronto!&lt;br&gt;
Ele também oferece integração com o Gitlab, Github, Bitbucket e entre outros.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusão
&lt;/h1&gt;

&lt;p&gt;O WakaTime, para mim, tem um registro muito preciso da hora em que você estava digitando e contabiliza isso muito bem. Hoje, ele faz parte do meu dia a dia e tem me ajudado a entender os dias e horas que estou mais produtivo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Não se gerencia o que não se mede, não se mede o que não se define, não se define o que não se entende, e não há sucesso no que não se gerencia&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;William Edwards Deming (1900–1993)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mata o tempo e matas a tua carreira&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bryan Forbes (1926–2013)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

</description>
      <category>wakatime</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Gerar uma nova chave SSH no Windows</title>
      <dc:creator>Iago Frota</dc:creator>
      <pubDate>Thu, 23 Mar 2023 23:56:13 +0000</pubDate>
      <link>https://dev.to/iagofrota/gerar-uma-nova-chave-ssh-no-windows-40bd</link>
      <guid>https://dev.to/iagofrota/gerar-uma-nova-chave-ssh-no-windows-40bd</guid>
      <description>&lt;p&gt;Seja para acessar seu servidor, banco de dados, fazer transferência de arquivos ou fazer commits seguros no Github ou Gitlab, provavelmente você usará o SSH. Com este artigo, procuro falar um pouco sobre o SSH e como gerar uma nova chave para você adicionar onde quiser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre a chave SSH
&lt;/h2&gt;

&lt;p&gt;O SSH é um protocolo de rede para nós acessarmos remotamente e de forma segura nossos serviços, como por exemplo, nossos servidores, banco de dados ou até mesmo fazer transferência de arquivos (SFTP). Toda essa comunicação acontece acontece utilizando criptografia para que nossa comunicação passe a ser confiável e segura.&lt;/p&gt;

&lt;p&gt;Umas das vantagens de você considerar utilizar sempre comunicação por SSH, é o fato dele inviabilizar ataques do tipo &lt;a href="https://www.welivesecurity.com/br/2020/06/26/o-que-e-um-ataque-de-forca-bruta/" rel="noopener noreferrer"&gt;Força Bruta ou bruteforce&lt;/a&gt;, já que, o tempo para quebrar essa segurança iria demorar um tempo absurdo para descobrir a senha do seu serviço.&lt;/p&gt;

&lt;p&gt;Hoje, tenho a preferência por utilizar SSH onde é permitido, desde o acesso as minhas VPS até a transferência de arquivos (SFTP).&lt;/p&gt;

&lt;p&gt;Vamos ao que interessa!&lt;/p&gt;

&lt;h2&gt;
  
  
  Gerando uma nova chave SSH
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Abra o seu terminal favorito e execute o seguinte comando
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh-keygen -t rsa -b 4096 -C "seu-email@gmail.com"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;O comando acima irá gerar uma nova chave SSH, usando o e-mail como um identificador para esta nova chave.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Será solicitado escolher um nome para o arquivo. Clique Enter
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Enter file in which to save the key (C:\Users\iagof\.ssh\id_rsa): [clique Enter]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Caso você queria ter mais de uma chave, escolha um nome semântico para se confundir mais tarde. Tenho dicas para você no final. 😉&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Será solicitado uma senha. Digite e confirme clicando no Enter
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Enter passphrase (empty for no passpharse): [digite sua senha e clique Enter]

Enter same passpharse again: [digite sua senha novamente e clique Enter]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Será solicitado digitar uma senha duas vezes para confirmar.&lt;/p&gt;
&lt;h3&gt;
  
  
  4. 🎉 Congratulations! Sua chave SSH foi criada com sucesso!
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frg0o39unr0r2gg093jgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frg0o39unr0r2gg093jgc.png" alt="Finalização do processo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Caso esteja vendo uma tela parecida com essa, você conseguiu com sucesso gerar sua chave SSH.&lt;/p&gt;
&lt;h2&gt;
  
  
  Dicas
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“Certo. Criei minha chave e como faço para copiá-la?”&lt;br&gt;
-- Leitor&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sua chave privada e a pública, estão na raiz da pasta do seu usuário. No meu caso, ela está localizada no seguinte caminho&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\iagof\.ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Para copiar a sua chave para a área de transferência, execute o seguinte comando&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat .\.ssh\id_rsa.pub | clip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="ltag__link"&gt;
  &lt;a href="/iagofrota" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F319353%2F19a377ef-e056-4d54-a828-209dbe4e9719.JPG" alt="iagofrota"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/iagofrota/deploy-com-git-bare-2m59" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Deploy com git bare&lt;/h2&gt;
      &lt;h3&gt;Iago Frota ・ Mar 23 '23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#git&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#gitbare&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#deploy&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



</description>
      <category>tutorial</category>
      <category>ssh</category>
      <category>window</category>
    </item>
    <item>
      <title>Deploy com git bare</title>
      <dc:creator>Iago Frota</dc:creator>
      <pubDate>Thu, 23 Mar 2023 23:46:15 +0000</pubDate>
      <link>https://dev.to/iagofrota/deploy-com-git-bare-2m59</link>
      <guid>https://dev.to/iagofrota/deploy-com-git-bare-2m59</guid>
      <description>&lt;p&gt;Já faz um tempo que estou achando muito interessante e útil automatizar certas ações repetitivas que eu tomo no meu dia a dia, como, por exemplo, dar deploy nas aplicações que fiz e sou responsável tanto no meu trabalho como em meus projetos pessoais.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Basicamente, um repositório criado com o comando &lt;code&gt;git init --bare&lt;/code&gt;, irá criar um repositório sem os commits ou histórico de commits. Outro ponto, interessante é que você só envia os seus commits para esse repositório.&lt;/p&gt;

&lt;p&gt;Irei citar um trecho muito esclarecedor&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Well, a working repository created with git init is for… working.&lt;br&gt;
Jon Saints - What is a bare git repository?&lt;/p&gt;

&lt;p&gt;A bare repository created with git init --bare is for… sharing.&lt;br&gt;
Jon Saints - What is a bare git repository?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pré-requisito
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Ter o GIT instalado na sua máquina local&lt;/li&gt;
&lt;li&gt;Ter o GIT instalado na sua VPS&lt;/li&gt;
&lt;li&gt;Ter acesso a sua VPS via SSH&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Criar o repositório bare no servidor de produção
&lt;/h2&gt;

&lt;p&gt;Acesso o seu servidor via ssh&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh iago@server.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Acessado com sucesso, vamos criar a pasta e inicializar o repositório bare:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; ~/git-deploy/meu-projeto-sensacional
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com esse comando, criei a pasta git-deploy que irá abrigar os outros repositórios e criei a pasta &lt;code&gt;meu-projeto-sensacional&lt;/code&gt;, que será meu repositório bare.&lt;/p&gt;

&lt;p&gt;Dentro da pasta &lt;code&gt;meu-repositorio-sensacional&lt;/code&gt;, dê o seguinte comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git init &lt;span class="nt"&gt;--bare&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se você listar os itens desta pasta, verá algo parecido com isso&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftn2cxp16gncnu2s3qgqs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftn2cxp16gncnu2s3qgqs.jpg" alt="Listagem da pasta do repositório"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hooks
&lt;/h2&gt;

&lt;p&gt;De maneira bem sucinta, os hooks seriam gatilhos que disparam ações. Na pasta hooks, você verá vários scripts de exemplo. Os mais comuns, são:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;pre-receive: é executado assim que recebe a mudança&lt;/li&gt;
&lt;li&gt;post-receive: é executado depois que é recebido a mudança&lt;/li&gt;
&lt;li&gt;update: é muito parecido com o 1. pre-receive, mas só é executado uma vez&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Esse &lt;a href="https://www.digitalocean.com/community/tutorials/how-to-use-git-hooks-to-automate-development-and-deployment-tasks" rel="noopener noreferrer"&gt;artigo&lt;/a&gt; explica os outros scripts. Vale a pena dar uma lida.&lt;/p&gt;

&lt;p&gt;Para o nosso caso, iremos criar um arquivo chamado post-receive e terá o seguinte conteúdo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nv"&gt;GIT_WORK_TREE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/var/www/html/meu-projeto-sensacional git checkout &lt;span class="nt"&gt;-f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O valor da variável &lt;code&gt;GIT_WORK_TREE&lt;/code&gt;, é o caminho do seu projeto em produção&lt;/p&gt;

&lt;p&gt;Salve e feche o arquivo.&lt;/p&gt;

&lt;p&gt;Agora, precisamos dar permissão de execução desse script&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x post-receive
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adicionar o repositório remoto localmente
&lt;/h2&gt;

&lt;p&gt;Entre no seu repositório local e adicione um novo repositório remoto&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add prod iago@servidor.com.br:/home/iago/git-deploy/meu-projeto-sensacional
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Você poder dar o nome que quiser para o remoto.&lt;/p&gt;

&lt;p&gt;Enfim, para enviar os seu trabalho para o repositório bare, faça um push no remoto prod&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push prod
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Enfim, eu utilizo repositório criados com o comando &lt;code&gt;git init&lt;/code&gt; na minha máquina para desenvolver, fazer merge ou rebase e consultar diff. Já para projetos em produção, utilizo repositórios criados com o comando &lt;code&gt;git init --bare&lt;/code&gt;, pois não irei precisar trabalhar diretamente nesse repositório. Lá, só existe o trabalho "final".&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Utilizo repositório criados com o comando git ini na minha máquina para desenvolver, fazer merge ou rebase e consultar diff&lt;br&gt;
Sobre repositórios simples&lt;/p&gt;

&lt;p&gt;Lá, só existe o trabalho "final"&lt;br&gt;
Sobre repositórios bare&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Espero sinceramente que o conteúdo deste artigo seja útil para você, assim como foi e está sendo para mim.&lt;/p&gt;

&lt;p&gt;Acredito que este artigo será útil também&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Fontes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pt.stackoverflow.com/a/80188/31086" rel="noopener noreferrer"&gt;https://pt.stackoverflow.com/a/80188/31086&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.blopig.com/blog/2017/06/using-bare-git-repos/" rel="noopener noreferrer"&gt;https://www.blopig.com/blog/2017/06/using-bare-git-repos/&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.saintsjd.com/2011/01/what-is-a-bare-git-repository/" rel="noopener noreferrer"&gt;http://www.saintsjd.com/2011/01/what-is-a-bare-git-repository/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks" rel="noopener noreferrer"&gt;https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-use-git-hooks-to-automate-development-and-deployment-tasks" rel="noopener noreferrer"&gt;https://www.digitalocean.com/community/tutorials/how-to-use-git-hooks-to-automate-development-and-deployment-tasks&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>gitbare</category>
      <category>deploy</category>
    </item>
    <item>
      <title>[shorts] Saiba a diferença entre DELETE e TRUNCATE - Banco de Dados</title>
      <dc:creator>Iago Frota</dc:creator>
      <pubDate>Thu, 23 Mar 2023 23:00:00 +0000</pubDate>
      <link>https://dev.to/iagofrota/shorts-saiba-a-diferenca-entre-delete-e-truncate-banco-de-dados-4ce5</link>
      <guid>https://dev.to/iagofrota/shorts-saiba-a-diferenca-entre-delete-e-truncate-banco-de-dados-4ce5</guid>
      <description>&lt;p&gt;Esses dias bateu a curiosidade de saber a diferença entre os comando SQL TRUCANTE e DELETE. Apesar de pequena a primeiro momento, encontrei e entendi a explicação para utilizar um ou outro dependendo da situação.&lt;/p&gt;

&lt;p&gt;Borá lá ( ͡👁️ ͜ʖ ͡👁️)&lt;/p&gt;

&lt;h1&gt;
  
  
  Comparativo entre DELETE e TRUNCATE
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Comparação&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;DELETE&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;TRUNCATE&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tipo&lt;/td&gt;
&lt;td&gt;&lt;a href="https://pt.stackoverflow.com/a/262868/31086"&gt;DML (Data Manipulation Language)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://pt.stackoverflow.com/a/262868/31086"&gt;DLL (Data Definition Language)&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;WHERE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pode ser utilizado a clausula &lt;code&gt;WHERE&lt;/code&gt; para especificar as tuplas ( ou linhas, registros, ...)&lt;/td&gt;
&lt;td&gt;Não tem a opção de usar a clausula &lt;code&gt;WHERE&lt;/code&gt; e irá apagar todas as tuplas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;locks&lt;/td&gt;
&lt;td&gt;Será dado lock para cada linha que for ser excluída (requer mais recursos)&lt;/td&gt;
&lt;td&gt;Será dado lock somente na data page (requer menos recursos)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Velocidade&lt;/td&gt;
&lt;td&gt;É mais lenta devido fazer operações linha a linha e fazer muito uso de log&lt;/td&gt;
&lt;td&gt;É mais rápido por registrar apenas o data page e fazer menos uso do log&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reverter&lt;/td&gt;
&lt;td&gt;É possível dar &lt;code&gt;ROLLBACK&lt;/code&gt; e desfazer a operação de exclusão&lt;/td&gt;
&lt;td&gt;Não é possível reverter a operação de exclusão&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;TRUNCATE é mais eficiente e performático para excluir tuplas sem especificar um filtro (cláusula WHERE)&lt;/p&gt;

&lt;p&gt;DELETE é mais lento, porém consigo dar ROLLBACK e reverter a operação&lt;/p&gt;

&lt;p&gt;TRUNCATE vs DELETE&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Conclusão
&lt;/h1&gt;

&lt;p&gt;A minha intenção foi mostrar o comparativo entre os comandos e dar uma maior compressão dos motivos de se utilizar um ou outro. Espero que eu tenha conseguido clarear essa diferença.&lt;/p&gt;

</description>
      <category>database</category>
    </item>
  </channel>
</rss>
