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.

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:
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:
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:
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:
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:
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:
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:
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)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Passo 3) Digite a consulta no editor de consultas:
ALTER TABLE Book ADD author VARCHAR(50);
Passo 4) Clique no botรฃo Executar.
Passo 5) Para verificar se a coluna foi adicionada, faรงa o seguinte:
- Clique em Bancos de dados na navegaรงรฃo esquerda.
- Expanda Demonstraรงรฃo.
- Expanda Esquemas.
- Expanda Pรบblico.
- Expanda Tabelas.
- Expandir livro.
- Expanda Colunas.
A coluna deveria ter sido adicionada, conforme mostrado abaixo:
Renomeando uma coluna de tabela
Passo 1) Faรงa login em sua conta pgAdmin.
Passo 2)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
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.
Passo 5) Para verificar se a alteraรงรฃo foi bem-sucedida, expanda as colunas da tabela de livros como antes:
As colunas agora devem ser as seguintes:
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)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
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.
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:
Adicionando uma restriรงรฃo de verificaรงรฃo
Passo 1) Faรงa login em sua conta pgAdmin.
Passo 2)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
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.
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');
Ele retornarรก o seguinte:
Renomeando uma tabela
Passo 1) Faรงa login em sua conta pgAdmin.
Passo 2)
- Na barra de navegaรงรฃo ร esquerda, clique em Bancos de dados.
- Clique em Demonstraรงรฃo.
Passo 3) Digite a consulta no editor de consultas:
ALTER TABLE Book RENAME TO Books;
Passo 4) Clique no botรฃo Executar.
Passo 5) Para verificar se a tabela foi renomeada, expanda Bancos de Dados > Demo > Esquemas > Pรบblico > Tabelas:
A tabela foi renomeada com sucesso.
Baixe o banco de dados usado neste tutorial

























