PostgreSQL ALTERAR TABELA: Adicionar e Renomear Coluna

โšก Resumo Inteligente

PostgreSQL O comando ALTER TABLE altera a estrutura de uma tabela existente, permitindo adicionar ou remover colunas, renomear uma coluna ou a tabela inteira, definir valores padrรฃo e adicionar restriรงรตes de verificaรงรฃo sem recriar o objeto.

  • ๐Ÿงฑ Sintaxe: A aรงรฃo ALTER TABLE nome-da-tabela executa uma alteraรงรฃo estrutural por instruรงรฃo.
  • โž• Adicionar coluna: O comando ADD nome-da-coluna tipo-de-dados adiciona uma nova coluna ร  tabela.
  • โœ๏ธ Renomear: RENOMEAR COLUNA e RENOMEAR PARA alteram o nome de uma coluna ou o nome de uma tabela.
  • โš™๏ธ Valor padrรฃo: ALTER COLUMN SET DEFAULT fornece um valor para futuras linhas INSERT.
  • ๐Ÿ›ก๏ธ Verificar restriรงรฃo: A funรงรฃo ADD CHECK valida novos dados e rejeita valores que nรฃo atendem ร  regra.
  • ๐Ÿค– Migraรงรตes de IA: Assistentes de IA elaboram scripts ALTER TABLE e os revisam para garantir uma implantaรงรฃo segura.

PostgreSQL ALTERAR A TABELA

O que รฉ ALTER TABLE em PostgreSQL?

O ALTERAR A TABELA O comando รฉ usado para alterar a estrutura de um PostgreSQL tabela. ร‰ o comando usado para alterar as colunas da tabela ou o nome da prรณpria tabela, sem excluir.ping e recriando o objeto.

Sintaxe

Aqui estรก a sintaxe para o PostgreSQL Comando ALTER TABLE:

ALTER TABLE table-name action;

O parรขmetro `table-name` รฉ o nome da tabela que vocรช precisa alterar. O parรขmetro `action` รฉ a aรงรฃo que vocรช precisa executar, como alterar o nome de uma coluna ou alterar o tipo de dados de uma coluna.

Descriรงรฃo

O comando ALTER TABLE altera a definiรงรฃo de uma tabela existente. Leva os seguintes subformulรกrios:

  • ADICIONE COLUNAEste comando utiliza uma sintaxe semelhante ร  do comando CREATE TABLE para adicionar uma nova coluna a uma tabela.
  • COLUNA DE DESCARGA: para quedaping uma coluna da tabela. As restriรงรตes e os รญndices impostos ร s colunas tambรฉm serรฃo removidos.
  • DEFINIR/DEIXAR PADRรƒO: usado para definir ou remover o valor padrรฃo de uma coluna. A alteraรงรฃo sรณ se aplica ร s colunas subsequentes. Instruรงรตes INSERT.
  • SET/DROP NรƒO NULO: Altera se uma coluna permitirรก valores nulos ou nรฃo.
  • ESTATรSTICAS DO CONJUNTO: para definir a meta de coleta de estatรญsticas para cada coluna nas operaรงรตes ANALYZE.
  • DEFINIR ARMAZENAMENTO: para definir o modo de armazenamento de uma coluna, seja em linha ou em uma tabela suplementar.
  • CONJUNTO SEM OIDS: usado para remover a coluna OID antiga da tabela.
  • RENOMEAR: para alterar o nome da tabela ou o nome da coluna.
  • ADICIONAR tabela_constraint: usado para adicionar uma nova restriรงรฃo a uma tabela. Ele usa a mesma sintaxe que o CRIAR TABELA comando.
  • QUEDA DE RESTRIร‡รƒO: usado para soltarping uma restriรงรฃo de tabela.
  • PROPRIETรRIO: para alterar o proprietรกrio de uma tabela, sequรชncia, รญndice ou visualizaรงรฃo para um determinado usuรกrio.
  • CLUSTER: para marcar uma tabela para ser usada em futuras operaรงรตes de cluster.

Modificando uma coluna

Uma coluna pode ser modificada de diversas maneiras. Essas modificaรงรตes sรฃo feitas usando o comando ALTER TABLE. Vamos discuti-las a seguir.

Adicionando uma nova coluna

Para adicionar uma nova coluna a um PostgreSQL tabela, o comando ALTER TABLE รฉ usado com a seguinte sintaxe:

ALTER TABLE table-name
  ADD new-column-name column-definition;

O nome da tabela รฉ o nome da tabela a ser modificada. O nome da nova coluna รฉ o nome da nova coluna a ser adicionada. A definiรงรฃo da coluna รฉ a tipo de dados da nova coluna. Veja a tabela Livro mostrada abaixo:

PostgreSQL Exemplo de ALTER TABLE

A tabela possui duas colunas, id e nome. Precisamos adicionar uma nova coluna ร  tabela e nomeรก-la como autor. Basta executar o seguinte comando:

ALTER TABLE Book
  ADD author VARCHAR(50);

Depois de executar o comando acima, a tabela Book agora fica da seguinte forma:

PostgreSQL Exemplo de ALTER TABLE

A nova coluna foi adicionada com sucesso.

Renomeando uma coluna de tabela

Podemos usar o comando ALTER TABLE para alterar o nome de uma coluna. Neste caso, o comando รฉ utilizado com a seguinte sintaxe:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

O nome da tabela รฉ o nome da tabela cuja coluna serรก renomeada. O nome antigo รฉ o nome atual da coluna e o novo nome รฉ o novo nome da coluna. Considere a tabela Book mostrada abaixo:

Livro:

PostgreSQL Exemplo de ALTER TABLE

Precisamos alterar o nome da coluna "author" para "book_author". Aqui estรก o comando:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Apรณs executar o comando, podemos visualizar a estrutura da tabela:

PostgreSQL Exemplo de ALTER TABLE

O nome da coluna foi alterado com sucesso.

Definindo um valor padrรฃo para uma coluna

Podemos definir um valor padrรฃo para uma coluna, de forma que, mesmo quando vocรช nรฃo especificar um valor para essa coluna durante as operaรงรตes de INSERT, o valor padrรฃo serรก utilizado. Nesse caso, o comando ALTER TABLE pode ser usado com a seguinte sintaxe:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

O nome da tabela รฉ o nome da tabela cuja coluna serรก modificada. O nome da coluna รฉ o nome da coluna cujo valor padrรฃo serรก definido, e o valor รฉ o valor padrรฃo da coluna. Considere a tabela Livro abaixo:

PostgreSQL Exemplo de ALTER TABLE

Precisamos definir um valor padrรฃo para a coluna book_author. Podemos executar o seguinte comando:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Agora, vamos inserir uma linha na tabela:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

Observe que inserimos valores apenas para duas colunas, id e nome. No entanto, o valor padrรฃo foi utilizado para a coluna book_author:

PostgreSQL Exemplo de ALTER TABLE

Adicionando uma restriรงรฃo de verificaรงรฃo

Uma restriรงรฃo de verificaรงรฃo ajuda a validar os registros que estรฃo sendo inseridos em uma tabela. Podemos fazer isso combinando o comando ALTER TABLE com a instruรงรฃo ADD CHECK. Sintaxe:

ALTER TABLE table-name ADD CHECK expression;

O nome da tabela รฉ o nome da tabela a ser alterada e a expressรฃo รฉ a restriรงรฃo a ser imposta ร  coluna da tabela. Vamos modificar a coluna book_author da tabela Book para que ela aceite apenas os valores Nicholas e Samuel:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Agora, vamos tentar inserir um valor diferente de Nicholas ou Samuel na coluna book_author da tabela Book:

INSERT INTO Book
VALUES(7, 'Melhor PostgreSQL Book', 'Gregory Bush');

A instruรงรฃo retornarรก o seguinte erro:

PostgreSQL Exemplo de ALTER TABLE

A operaรงรฃo de inserรงรฃo falhou porque violamos a restriรงรฃo de verificaรงรฃo.

Renomeando uma tabela

Aqui estรก a sintaxe do comando ALTER TABLE para renomear uma tabela:

ALTER TABLE table-name
  RENAME TO new-table-name;

O nome-da-tabela รฉ o nome atual da tabela, e o novo-nome-da-tabela รฉ o novo nome a ser atribuรญdo ร  tabela. Por exemplo, vamos mudar o nome da tabela Livro para Livros:

ALTER TABLE Book
  RENAME TO Books;

Usando pgAdmin

Atรฉ agora, as aรงรตes foram executadas a partir do shell SQL. Agora, vejamos como essas mesmas aรงรตes podem ser realizadas visualmente usando o pgAdmin.

Adicionando uma nova coluna

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

PostgreSQL Exemplo de ALTER TABLE

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book
  ADD author VARCHAR(50);

Passo 4) Clique no botรฃo Executar.

PostgreSQL Exemplo de ALTER TABLE

Passo 5) Para verificar se a coluna foi adicionada, faรงa o seguinte:

  1. Clique em Bancos de dados na navegaรงรฃo esquerda.
  2. Expanda Demonstraรงรฃo.
  3. Expanda Esquemas.
  4. Expanda Pรบblico.
  5. Expanda Tabelas.
  6. Expandir livro.
  7. Expanda Colunas.

PostgreSQL Exemplo de ALTER TABLE

A coluna deveria ter sido adicionada, conforme mostrado abaixo:

PostgreSQL Exemplo de ALTER TABLE

Renomeando uma coluna de tabela

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

PostgreSQL Exemplo de ALTER TABLE

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Passo 4) Clique no botรฃo Executar.

PostgreSQL Exemplo de ALTER TABLE

Passo 5) Para verificar se a alteraรงรฃo foi bem-sucedida, expanda as colunas da tabela de livros como antes:

PostgreSQL Exemplo de ALTER TABLE

As colunas agora devem ser as seguintes:

PostgreSQL Exemplo de ALTER TABLE

A coluna foi alterada com sucesso.

Definindo um valor padrรฃo para uma coluna

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

PostgreSQL Exemplo de ALTER TABLE

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Passo 4) Clique no botรฃo Executar.

PostgreSQL Exemplo de ALTER TABLE

Passo 5) Para testar, execute o seguinte comando no editor de consultas:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

Passo 6) Agora podemos consultar a tabela para verificar se o valor padrรฃo foi inserido na coluna book_author:

PostgreSQL Exemplo de ALTER TABLE

Adicionando uma restriรงรฃo de verificaรงรฃo

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

PostgreSQL Exemplo de ALTER TABLE

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Passo 4) Clique no botรฃo Executar.

PostgreSQL Exemplo de ALTER TABLE

Passo 5) Para testar, digite a seguinte consulta no editor de consultas e clique no botรฃo Executar:

INSERT INTO Book
VALUES(7, 'Melhor PostgreSQL Book', 'Gregory Bush');

PostgreSQL Exemplo de ALTER TABLE

Ele retornarรก o seguinte:

PostgreSQL Exemplo de ALTER TABLE

Renomeando uma tabela

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

PostgreSQL Exemplo de ALTER TABLE

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book
  RENAME TO Books;

Passo 4) Clique no botรฃo Executar.

PostgreSQL Exemplo de ALTER TABLE

Passo 5) Para verificar se a tabela foi renomeada, expanda Bancos de Dados > Demo > Esquemas > Pรบblico > Tabelas:

PostgreSQL Exemplo de ALTER TABLE

A tabela foi renomeada com sucesso.

Baixe o banco de dados usado neste tutorial

Perguntas Frequentes

Use ALTER TABLE nome_da_tabela ALTER COLUMN nome_da_coluna TYPE novo_tipo. Adicione uma clรกusula USING quando os valores precisarem de conversรฃo, por exemplo, ALTER COLUMN preรงo TYPE numรฉrico USING preรงo::numรฉrico. PostgreSQL Reescreve a coluna e verifica se os dados existentes se adequam ao novo tipo.

Somente se o padrรฃo for volรกtil. Jรก que PostgreSQL 11. ADICIONAR COLUNA com um valor padrรฃo constante atualiza o catรกlogo instantaneamente, sem reescrever as linhas. Um valor padrรฃo que chama uma funรงรฃo ainda forรงa uma reescrita completa da tabela e um bloqueio mais forte.

Nรฃo. PostgreSQL Nรฃo รฉ possรญvel alterar uma restriรงรฃo jรก existente. Remova a restriรงรฃo atual com DROP CONSTRAINT e, em seguida, adicione a restriรงรฃo corrigida com ADD CONSTRAINT. Envolva ambas as instruรงรตes em uma transaรงรฃo para que a tabela nunca fique sem a regra.

Liste vรกrias aรงรตes separadas por vรญrgulas: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL Aplica cada alteraรงรฃo em uma รบnica passagem, o que รฉ mais rรกpido e mantรฉm a tabela consistente.

Use ALTER TABLE nome_da_tabela ADD PRIMARY KEY (coluna) ou ADD CONSTRAINT nome_da_chave_primรกria PRIMARY KEY (coluna). A coluna deve conter valores รบnicos e nรฃo nulos; PostgreSQL Constrรณi automaticamente um รญndice รบnico de suporte quando a chave รฉ criada.

A operaรงรฃo RENAME atualiza apenas o nome da tabela no catรกlogo do sistema. As linhas, รญndices e restriรงรตes armazenados permanecem inalterados. Exibiรงรตes ou funรงรตes que fazem referรชncia ao nome antigo ainda podem precisar ser atualizadas posteriormente.

Os assistentes de IA elaboram scripts ALTER TABLE a partir de uma alteraรงรฃo descrita, ordenam corretamente as etapas ADD, RENAME e de restriรงรฃo e adicionam clรกusulas USING para conversรตes de tipo. Eles tambรฉm sinalizam operaรงรตes que reescrevem tabelas grandes ou que mantรชm bloqueios complexos.

Sim. Um copiloto de IA analisa uma migraรงรฃo, alerta sobre bloqueios ou reescritas de tabelas inteiras, sugere a criaรงรฃo de รญndices em lote ou simultรขneos e recomenda o encapsulamento.ping alteraรงรตes em uma transaรงรฃo, tornando as atualizaรงรตes de esquema mais seguras para implantaรงรฃo.

Resuma esta postagem com: