2.21. Alterando a Estrutura de uma Tabela

O comando SQL ALTER TABLE permite realizar modificações na estrutura de uma tabela, como a criação de novas colunas, a remoção de colunas, a troca de tipo de dados de uma coluna, renomear as colunas, renomear a tabela e incluir restrições de integridade.

Nesta seção vamos ilustrar uso desse comando.

2.21.1. Adicionando Colunas

Vamos adicionar uma coluna chamada carga_horaria na tabela disciplina para armazenar a carga horária da disciplina:

ALTER TABLE disciplina ADD COLUMN carga_horaria INTEGER CHECK (carga_horaria BETWEEN 0 AND 90);

Em seguida, vamos popular os valores dessa nova coluna, com a seguinte fórmula: \(carga horária = creditos * 15\).

UPDATE disciplina SET carga_horaria = creditos * 15;

2.21.2. Definindo uma Coluna como NOT NULL

Vamos definir a nova coluna carga_horaria como NOT NULL:

ALTER TABLE disciplina ALTER COLUMN carga_horaria SET NOT NULL;

2.21.3. Adicionando Restrições de Linha à Tabela

Vamos definir uma restrição que garanta que os valores de carga horária estejam entre 0 e 90:

ALTER TABLE disciplina ADD CHECK ((carga_horaria / creditos) = 15);

Nota

Essa restrição fará com que não seja possível atualizar as linhas da tabela disciplina com qualquer valor de carga horária. Faça um teste com o comando abaixo:

UPDATE disciplina SET carga_horaria = 15;

2.21.4. Removendo uma Coluna

ALTER TABLE disciplina DROP COLUMN carga_horaria;

Para mais detalhes do comando ALTER TABLE, consulte o manual do PostgreSQL na Seção ALTER TABLE.