Articles

TABELA DE ALTERAÇÕES DO Oráculo ADICIONAR Coluna Por Exemplos

Posted on

Resumo: neste tutorial, aprenderá como usar o Oracle declaração de coluna para adicionar uma ou mais colunas a uma tabela.

Para adicionar uma nova coluna a uma tabela, utiliza-se a declaração ALTER TABLE como se segue:

ALTER TABLE table_name ADD column_name data_type constraint;

Nesta declaração:

  • Primeiro, especifique o nome da tabela, que pretende adicionar a nova coluna, após a cláusula ALTER TABLE.
  • Segundo, especifica o nome da coluna, tipo de dados, e a sua restrição.

Nota que não pode adicionar uma coluna já existente na tabela; tentar fazê-lo causará um erro. Além disso, a declaração de coluna adiciona a nova coluna no final da tabela. A Oracle não fornece nenhuma forma directa que lhe permita especificar a posição da nova coluna como outros sistemas de bases de dados como o MySQL.

No caso de querer adicionar mais do que uma coluna, usa a seguinte sintaxe:

ALTER TABLE table_name ADD ( column_name_1 data_type constraint, column_name_2 data_type constraint, ...);

Nesta sintaxe, separa duas colunas por uma vírgula.

Oracle ALTER TABLE ADD exemplos de colunas

Vamos criar uma tabela com o nome members para a demonstração.

CREATE TABLE members( member_id NUMBER GENERATED BY DEFAULT AS IDENTITY, first_name VARCHAR2(50), last_name VARCHAR2(50), PRIMARY KEY(member_id));

A seguinte declaração adiciona uma nova coluna chamada birth_date à tabela members:

ALTER TABLE members ADD birth_date DATE NOT NULL;

Neste exemplo, a coluna birth_date é uma coluna DATE e não aceita nula.

P>Componente, pretende registar o momento em que uma linha é criada e actualizada. Para o fazer, é necessário adicionar duas colunas created_at e updated_at como se segue:

ALTER TABLE members ADD( created_at TIMESTAMP WITH TIME ZONE NOT NULL, updated_at TIMESTAMP WITH TIME ZONE NOT NULL );

Os tipos de dados do created_at e updated_at as colunas são TIMESTAMP WITH TIME ZONE. Estas colunas também não aceitam null.

Para verificar se existe uma coluna numa tabela, consulta-se os dados da vista user_tab_cols. Por exemplo, a seguinte declaração verifica se o members tabela tem o first_name coluna.

SELECT COUNT(*)FROM user_tab_colsWHERE column_name = 'FIRST_NAME' AND table_name = 'MEMBERS';

Esta consulta vem a calhar quando pretende verificar se uma coluna existe numa tabela antes de a adicionar.

Por exemplo, o seguinte bloco PL/SQL verifica se a coluna members tabela tem effective_date antes de a adicionar.

SET SERVEROUTPUT ON SIZE 1000000DECLARE v_col_exists NUMBER BEGIN SELECT count(*) INTO v_col_exists FROM user_tab_cols WHERE column_name = 'EFFECTIVE_DATE' AND table_name = 'MEMBERS'; IF (v_col_exists = 0) THEN EXECUTE IMMEDIATE 'ALTER TABLE members ADD effective_date DATE'; ELSE DBMS_OUTPUT.PUT_LINE('The column effective_date already exists'); END IF;END;/

Se executar o bloco na primeira vez, a coluna effective_date é anexada no final da tabela members. No entanto, uma vez executado da segunda vez, verá a seguinte mensagem:

The column effective_date already exists

que é o que esperávamos.

Neste tutorial, aprendeu como usar o Oracle declaração de coluna para adicionar uma ou mais colunas a uma tabela existente.

  • Este tutorial foi útil?
  • Sim Não

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *