Często musimy upuścić kolumnę w tabeli. Istnieją dwa sposoby, aby usunąć kolumnę w Oracle
(a) zmienić kolumnę upuszczania tabeli w Oracle
(b) zmienić zestaw tabeli nieużywaną kolumnę w Oracle
DROP COLUMN za pomocą DROP COLUMN
Tutaj usuwamy kolumnę z tabeli za pomocą poniższego polecenia .
ALTER TABLE table_name DROP COLUMN col_name;
Ta instrukcja blokuje tabelę na wyłączność, a jeśli tabela jest duża, wykonanie zapytania zajmie trochę czasu
Przykład
SQL> CREATE TABLE Books_master ( Book_Id NUMBER(6,0), Title VARCHAR2(50), Author VARCHAR2(50), ISBN VARCHAR2(25), BCost NUMBER(6,0), Publish_Year NUMBER(4,0), CONSTRAINT Books_master_PK PRIMARY KEY (Book_Id), CONSTRAINT Books_master_UK1 UNIQUE (Title, Author), CONSTRAINT Books_master_UK2 UNIQUE (ISBN) ) ; Table created. SQL> INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) VALUES (10, 'Complete/Convenient', 'Ketan Bhagat', 'ISBN 978-93-80349-92-3', 195, 2013); SQL>INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) VALUES (20, 'Deception Point', 'Dan Brown', 'ISBN 0-671-02738-7', 563,2001); SQL> INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) VALUES (30, 'Angels-Demons', 'Dan Brown', 'ISBN 0-671-02736-0',563, 2000); SQL>INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) VALUES (40, 'Harry Potter', 'J.K. Rowling', 'ISBN 0-7475-5100-6', 102,2003); SQL> commit; Commit complete. SQL> column TITLE format a10 SQL> column AUTHOR format a10 SQL> column ISBN format a15
SQL > Desc BOOKS_MASTER
Upuśćmy kolumnę z tej tabeli
SQL> alter table books_master drop column PUBLISH_YEAR; Table altered. SQL > Desc BOOKS_MASTER
SQL> Select * from Books_master;
UPUŚĆ KOLUMNĘ za pomocą USTAW NIEUŻYWANE
- Jeśli martwisz się o zasób zużyty podczas usuwania kolumny, możesz użyć instrukcji ALTER TABLE…SET UNUSED.
- To stwierdzenie oznacza co najmniej jedną kolumnę jako nieużywaną, ale w rzeczywistości nie usuwa danych kolumny docelowej ani nie przywraca miejsca na dysku zajmowanego przez te kolumny.
- Kolumna oznaczona jako nieużywana nie jest wyświetlana w zapytaniach ani widokach słownika danych, a jej nazwa jest usuwana, aby nowa kolumna mogła ponownie użyć tej nazwy. Wszystkie ograniczenia, indeksy i statystyki zdefiniowane w kolumnie są również usuwane.
Składnia
ALTER TABLE
SET UNUSED COLUMN
Nieużywaną kolumnę możemy usunąć później, gdy zasób spadnie za pomocą polecenia
ALTER TABLE
Upuść NIEUŻYWANE KOLUMNY;
Jeśli masz duże tabele, możesz zmniejszyć ilość gromadzonych dzienników cofania za pomocą opcji CHECKPOINT, która wymusza punkt kontrolny po przetworzeniu określonej liczby wierszy. Punkt kontrolny zmniejsza ilość dzienników cofania gromadzonych podczas operacji upuszczania kolumny, aby uniknąć potencjalnego wyczerpania przestrzeni cofania.
ALTER TABLE nazwa_tabeli DROP UNUSED COLUMNS CHECKPOINT 500;
- Jeśli użyłeś składni punktu kontrolnego w poleceniu drop, możesz zabić sesję (lub zamknąć bazę danych) w połowie upuszczania.
- Tabela nie będzie dostępna dla DML ani zapytania
- Możesz zakończyć polecenie „upuść kolumny” za pomocą opcji „kontynuuj” (z opcjonalnym punktem kontrolnym).
alter table drop columns continue checkpoint; alter table drop columns continue checkpoint 5000;
Przykład
chodźmy z wcześniej utworzoną tabelą
SQL> alter table books_master set unused column ISBN; Table altered. SQL> desc books_master
SQL> Select * from Books_master;
Możemy sprawdzić liczbę nieużywanych kolumn, wysyłając zapytanie do poniższego widoku USER_UNUSED_COL_TABS, ALL_UNUSED_COL_TABS lub DBA_UNUSED_COL_TABS
SQL> select * from DBA_UNUSED_COL_TABS where TABLE_NAME='BOOKS_MASTER';
Teraz możesz upuścić kolumnę w okresie niskiej aktywności
SQL> alter table Books_master drop unused columns; Table altered. SQL> select * from DBA_UNUSED_COL_TABS where TABLE_NAME='BOOKS_MASTER'; no rows selected
Jak usunąć wiele kolumn
Możemy określić wiele kolumn podczas polecenia upuszczania
SQL> alter table books_master drop (AUTHOR,TITLE); Table altered.
Mam nadzieję, że podoba Ci się post w kolumnie zmiany tabeli w Oracle. Prosimy o przesłanie opinii
Też czyta
Klucz podstawowy Oracle
zmień przenoszenie tabeli
zmień kolumnę zmiany nazwy tabeli w Oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables006. htm