{"id":464,"date":"2023-05-16T17:36:08","date_gmt":"2023-05-16T17:36:08","guid":{"rendered":"http:\/\/jplatz.com.br\/syntax\/?p=464"},"modified":"2023-05-16T17:41:04","modified_gmt":"2023-05-16T17:41:04","slug":"mysql-resetar-sequencia-autoincrement-sem-informar-proxima-sequencia","status":"publish","type":"post","link":"https:\/\/jplatz.com.br\/syntax\/2023\/05\/16\/mysql-resetar-sequencia-autoincrement-sem-informar-proxima-sequencia\/","title":{"rendered":"MySQL Resetar Sequ\u00eancia AutoIncrement Sem Informar Pr\u00f3xima Sequ\u00eancia"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>-- first, remove auto-increment attribute if it still exists\nALTER TABLE `<span style=\"background-color: initial; font-family: inherit; font-size: inherit; color: initial;\">mytable`<\/span> MODIFY COLUMN `id` INT(10) UNSIGNED;\n\n-- second, add auto-increment attribute back\nALTER TABLE `<span style=\"background-color: initial; font-family: inherit; font-size: inherit; color: initial;\">mytable`<\/span> MODIFY COLUMN `id` INT(10) UNSIGNED AUTO_INCREMENT;<\/code><\/pre>\n\n\n\n<p>Recentemente enfrentei um problema de deixar os cabelos em p\u00e9 onde uma das tabelas acabou perdendo o atributo <strong>auto-increment<\/strong> durante uma opera\u00e7\u00e3o de movimenta\u00e7\u00e3o na nuvem.<\/p>\n\n\n\n<p>Bom, o <strong><em>deixar os cabelos em p\u00e9<\/em><\/strong> foi por que demorei muito para descobrir a ocorr\u00eancia deste evento de perda do atributo, por\u00e9m a corre\u00e7\u00e3o do schema \u00e9 bastante simples.<\/p>\n\n\n\n<p>Apesar do meu caso se tratar de uma tabela de pouca movimenta\u00e7\u00e3o eu quis utilizar uma solu\u00e7\u00e3o que encontrei durante minhas buscas. Achei esta solu\u00e7\u00e3o bastante interessante pelo fato de n\u00e3o ser preciso atribuir o valor do <strong>auto-increment<\/strong> com um <strong>HARD SET<\/strong> utilizando o <strong>MAX VALUE <\/strong>da coluna <strong>id<\/strong> correntemente na tabela.<\/p>\n\n\n\n<p>Ao inv\u00e9s disto, a opera\u00e7\u00e3o consiste em remover o atributo <strong>auto-increment<\/strong> do campo e simplesmente adicion\u00e1-lo novamente. Durante esta opera\u00e7\u00e3o o <strong>MySQL<\/strong> realiza um <strong>auto-reset<\/strong> atribuindo o valor correto de acordo com os dados existentes na tabela. <\/p>\n\n\n\n<p>No meu caso o atributo <strong>auto-increment <\/strong>j\u00e1 tinha sido removido em outra opera\u00e7\u00e3o, ent\u00e3o foi s\u00f3 executar o segundo comando mesmo para adicionar o <strong>auto-increment<\/strong> de volta a coluna id.<\/p>\n\n\n\n<p>Caso voc\u00ea queira simplesmente resetar a sequ\u00eancia <strong>auto-increment<\/strong> utilizando os comandos mais tradicionais voc\u00ea poderia utilizar, por exemplo, os comandos abaixo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT MAX(id)+1 INTO @next_id FROM `mytable`;\n\nALTER TABLE `mytable` AUTO_INCREMENT = @next_id;<\/code><\/pre>\n\n\n\n<p>Prontinho&#8230; Case Closed!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recentemente enfrentei um problema de deixar os cabelos em p\u00e9 onde uma das tabelas acabou perdendo o atributo auto-increment durante uma opera\u00e7\u00e3o de movimenta\u00e7\u00e3o na nuvem. Bom, o deixar os cabelos em p\u00e9 foi por que demorei muito para descobrir a ocorr\u00eancia deste evento de perda do atributo, por\u00e9m a corre\u00e7\u00e3o do schema \u00e9 bastante [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,24,23],"tags":[230,190,140],"class_list":["post-464","post","type-post","status-publish","format-standard","hentry","category-database","category-mariadb","category-mysql","tag-autoincrement","tag-mysql","tag-reset"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts\/464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/comments?post=464"}],"version-history":[{"count":2,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts\/464\/revisions"}],"predecessor-version":[{"id":467,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts\/464\/revisions\/467"}],"wp:attachment":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/media?parent=464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/categories?post=464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/tags?post=464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}