Vi har ofte brug for at droppe kolonnen i tabellen. Der er to måder at slette kolonnen i Oracle
(a) ændre tabelslipkolonne i Oracle
(b) ændre tabelsæt ubrugt kolonne i Oracle
DROP COLUMN ved hjælp af DROP COLUMN
Her i denne slipper vi kolonnen fra tabellen ved hjælp af nedenstående kommando .
ALTER TABLE table_name DROP COLUMN col_name;
Denne erklæring tager eksklusiv lås på bordet, og hvis bordet er stort, vil det tage tid at udføre forespørgslen
Eksempel
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
Lad os slippe en kolonne fra denne tabel
SQL> alter table books_master drop column PUBLISH_YEAR; Table altered. SQL > Desc BOOKS_MASTER
SQL> Select * from Books_master;
SLIP KOLONNE med SET UNUSED
- hvis du er bekymret over den ressource, der forbruges ved at slette kolonnen, kan du bruge ALTER TABLE...SET UNUSED -erklæringen.
- Denne erklæring markerer en eller flere kolonner som ubrugte, men fjerner faktisk ikke målkolonnens data eller gendanner den diskplads, der optages af disse kolonner.
- En kolonne, der er markeret som ubrugt, vises ikke i forespørgsler eller dataordbogsvisninger, og dens navn fjernes, så en ny kolonne kan genbruge dette navn. Alle begrænsninger, indekser og statistikker, der er defineret i kolonnen, fjernes også.
Syntaks
ÆNDRING TABEL
INDSTIL UBRUGTE KOLUMNE
Vi kan droppe den ubrugte kolonne senere, når ressourcen er lavere ved at bruge kommandoen
ÆNDRING TABEL
Slip UBRUGTE KOLONNER;
Hvis du har store tabeller, kan du reducere mængden af akkumulerede fortryd-logfiler ved at bruge CHECKPOINT-indstillingen, som fremtvinger et kontrolpunkt, efter at det angivne antal rækker er blevet behandlet. Checkpointing skærer ned på mængden af fortryd-logfiler, der er akkumuleret under drop-kolonne-operationen for at undgå potentiel opbrug af fortryd-plads.
ALTER TABLE table_name SLIP UBRUGTE KOLONNER CHECKPOINT 500;
- Hvis du har brugt checkpoint-syntaksen med din drop-kommando, kan du afbryde sessionen (eller lukke databasen) halvvejs i drop.
- Tabellen vil ikke være tilgængelig for DML eller forespørgsel
- du kan afslutte kommandoen "slip kolonner" ved at bruge "fortsæt" (med et valgfrit kontrolpunkt).
alter table drop columns continue checkpoint; alter table drop columns continue checkpoint 5000;
Eksempel
lader gå med den tidligere oprettede tabel
SQL> alter table books_master set unused column ISBN; Table altered. SQL> desc books_master
SQL> Select * from Books_master;
Vi kan kontrollere antallet af ubrugte kolonner ved at forespørge på nedenstående visning USER_UNUSED_COL_TABS, ALL_UNUSED_COL_TABS eller DBA_UNUSED_COL_TABS
SQL> select * from DBA_UNUSED_COL_TABS where TABLE_NAME='BOOKS_MASTER';
Nu kan du slippe kolonnen under lav aktivitetsperiode
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
Sådan dropper du flere kolonner
Vi kan angive flere kolonner under drop-kommando
SQL> alter table books_master drop (AUTHOR,TITLE); Table altered.
Håber du kan lide post på alter table drop kolonne i Oracle. Giv venligst feedback
Læser også
Oracle-primærnøgle
skift tabel flyt
ændre tabel omdøb kolonne i Oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables006. htm