Articles

Oracle ALTER TABLE ADD Kolumna Przykłady

Posted on

Podsumowanie: w tym poradniku dowiesz się jak używać instrukcji Oracle ALTER TABLE ADD kolumna do dodania jednej lub więcej kolumn do tabeli.

Aby dodać nową kolumnę do tabeli, należy użyć instrukcji ALTER TABLE w następujący sposób:

ALTER TABLE table_name ADD column_name data_type constraint;

W tej instrukcji:

  • Po pierwsze, określamy nazwę tabeli, do której chcemy dodać nową kolumnę, po klauzuli ALTER TABLE.
  • Po drugie, określasz nazwę kolumny, typ danych i jej ograniczenie.

Zauważ, że nie możesz dodać kolumny, która już istnieje w tabeli; próba dodania jej spowoduje błąd. Ponadto, instrukcja kolumny ALTER TABLE ADD dodaje nową kolumnę na końcu tabeli. Oracle nie zapewnia bezpośredniego sposobu pozwalającego na określenie pozycji nowej kolumny, jak ma to miejsce w przypadku innych systemów baz danych, takich jak MySQL.

W przypadku gdy chcesz dodać więcej niż jedną kolumnę, używasz następującej składni:

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

W tej składni oddzielasz dwie kolumny przecinkiem.

Oracle ALTER TABLE ADD column Przykłady

Na potrzeby demonstracji utwórzmy tabelę o nazwie members.

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

Poniższa instrukcja dodaje nową kolumnę o nazwie birth_date do tabeli members:

ALTER TABLE members ADD birth_date DATE NOT NULL;

W tym przykładzie kolumna birth_date jest kolumną DATE i nie przyjmuje wartości null.

Załóżmy, że chcesz zarejestrować czas, w którym wiersz został utworzony i zaktualizowany. Aby to zrobić, musisz dodać dwie kolumny created_at i updated_at w następujący sposób:

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

Typami danych kolumn created_at i updated_atTIMESTAMP WITH TIME ZONE. Te kolumny również nie przyjmują wartości null.

Aby sprawdzić, czy kolumna istnieje w tabeli, należy odpytać dane z widoku user_tab_cols. Na przykład, poniższa instrukcja sprawdza, czy tabela members posiada kolumnę first_name.

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

To zapytanie przydaje się, gdy chcemy sprawdzić, czy kolumna istnieje w tabeli przed jej dodaniem.

Na przykład, następujący blok PL/SQL sprawdza, czy tabela members posiada kolumnę effective_date przed jej dodaniem.

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;/

Jeśli wykonasz ten blok za pierwszym razem, kolumna effective_date zostanie dołączona na końcu tabeli members. Jednak gdy wykonamy go po raz drugi, zobaczymy następujący komunikat:

The column effective_date already exists

co jest tym, czego się spodziewaliśmy.

W tym poradniku dowiedziałeś się, jak używać instrukcji kolumny Oracle ALTER TABLE ADD w celu dodania jednej lub więcej kolumn do istniejącej tabeli.

  • Czy ten poradnik był pomocny?
  • TakNie

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *