Oracle
 sql >> Baza danych >  >> RDS >> Oracle

zmień kolumnę upuszczania tabeli w bazie danych Oracle

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Konwertuj TIMESTAMP ze strefą czasową na DATE

  2. Jakie sytuacje powodują, że pakiety Oracle stają się nieważne?

  3. Wyczyść pamięć podręczną drugiego poziomu hibernacji po ręcznej aktualizacji bazy danych

  4. Tworzenie tabeli na podstawie zapytania przy użyciu innej przestrzeni tabel (Oracle SQL)

  5. Oracle:Importuj plik CSV