Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

Desenvolvimento de soluções para problemas cotidianos enfrentados por DBAs e desenvolvedores de aplicações para banco dados.


Para que serve

Fornecer conceitos de utilização de funcionalidades do padrão ANSI SQL na resolução de problemas enfrentados no dia-a-dia para manutenção da integridade referencial do banco de dados.


Em que situação o tema é útil

Alterar chaves primárias de tabelas em diferentes situações.

Resumo DevMan

Este artigo apresenta alguns cenários em que precisamos alterar chaves primárias em tabelas de produção e algumas estratégias usadas para realizar esta tarefa.

Existem muitas tarefas que executamos nos bancos de dados que escondem sua complexidade. Coisas que a primeira vista parecem triviais e, quando vamos executá-las, percebemos a necessidade de realizar também uma série de ações complementares que ninguém havia previsto.

Uma destas tarefas aparentemente triviais é a alteração da chave primária de uma tabela. Quando temos que realizar tal alteração, é comum vir um pensamento na cabeça: “é para isso que existe a declaração ALTER TABLE”.

Pode ser até que você já tenha passado por alguma experiência em que executou declarações semelhantes em ambiente de desenvolvimento e que não gastou mais do que 30 minutos entre planejamento, criação dos scripts e implementação.

OK, em ambiente de desenvolvimento as coisas costumam ser simples. As tabelas alteradas podem estar vazias ou então simplesmente contem dados que podem ser perdidos sem nenhum problema. Daí, basta escrever a declaração SQL!

Entretanto, não é assim em ambiente de produção. Em primeiro lugar, o cargo de DBA existe exatamente para garantir a segurança dos dados das nossas empresas. Com estas palavras nos referimos não apenas à segurança de acesso aos dados, evitando que pessoas não autorizadas possam ler/alterar dados do banco, mas também à segurança contra a perda de dados.

Neste artigo, apresento alguns cenários em que precisamos alterar chaves primárias em tabelas de produção... e claro, algumas estratégias usadas para realizar esta tarefa.

Exigências das Chaves Primárias

As chaves primárias são de extrema importância nas nossas tabelas. Em primeiro lugar, é boa prática que toda tabela tenha uma chave primária definida. A chave primária garante a existência de um identificador único na tabela, ou seja, não existirão dois registros na tabela que contenham o mesmo valor nos campos que compõe esta chave.

A PK pode ser simples, ou seja, baseada em um único campo, ou então composta, quando inclui vários campos. Por definição, uma tabela pode ter apenas uma chave primária (veja Nota DevMan 1).

Nota DevMan 1 – Escolhendo a Chave Primária e Chave Alternativa

Eventualmente, pode existir numa tabela mais de um campo ou conjunto de campos que seja um possível candidato a chave primária. Todos estes campos são chamados de chaves candidatas, mas apenas um deles será chave primária. E todas as demais, aquelas que não forem escolhidas, serão chamadas de ...

Quer ler esse conteúdo completo? Tenha acesso completo