Vi behöver ofta släppa kolumnen i tabellen. Det finns två sätt att släppa kolumnen i Oracle
(a) ändra tabellsläppkolumn i Oracle
(b) ändra tabelluppsättning oanvänd kolumn i Oracle
SLIPPA COLUMN med DROP COLUMN
Här i detta släpper vi kolumnen från tabellen med kommandot nedan .
ALTER TABLE table_name DROP COLUMN col_name;
Denna sats tar exklusivt lås på bordet och om bordet är stort kommer det att ta tid att köra frågan
Exempel
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
Låt oss släppa en kolumn från den här tabellen
SQL> alter table books_master drop column PUBLISH_YEAR; Table altered. SQL > Desc BOOKS_MASTER
SQL> Select * from Books_master;
SLIPPA KOLUMN med SET UNUSED
- om du är bekymrad över resursen som förbrukades för att ta bort kolumnen kan du använda ALTER TABLE...SET UNUSED -satsen.
- Det här uttalandet markerar en eller flera kolumner som oanvända men tar inte bort målkolumndata eller återställer diskutrymmet som upptas av dessa kolumner.
- En kolumn som är markerad som oanvänd visas inte i sökfrågor eller datalexikon, och dess namn tas bort så att en ny kolumn kan återanvända det namnet. Alla begränsningar, index och statistik som definieras i kolumnen tas också bort.
Syntax
ALTER TABELL
STÄLL IN OANVÄND KOLUMN
Vi kan släppa den oanvända kolumnen senare när resursen är lägre med kommandot
ALTER TABELL
Släpp OANVÄNDA KOLUMNER;
Om du har stora tabeller kan du minska mängden ångra loggar som samlats med alternativet CHECKPOINT, som tvingar fram en kontrollpunkt efter att det angivna antalet rader har bearbetats. Checkpointing minskar mängden ångra loggar som ackumulerats under släppkolumnoperationen för att undvika potentiell uttömning av ångra utrymme.
ALTER TABLE table_name SLIPPA OANVÄNDA COLUMNS CHECKPOINT 500;
- Om du har använt kontrollpunktsyntaxen med ditt drop-kommando kan du avbryta sessionen (eller stänga av databasen) halvvägs genom nedsläppet.
- Tabellen kommer inte att vara tillgänglig för DML eller fråga
- du kan avsluta kommandot "släpp kolumner" med alternativet "fortsätt" (med en valfri kontrollpunkt).
alter table drop columns continue checkpoint; alter table drop columns continue checkpoint 5000;
Exempel
låt gå med den tidigare skapade tabellen
SQL> alter table books_master set unused column ISBN; Table altered. SQL> desc books_master
SQL> Select * from Books_master;
Vi kan kontrollera antalet oanvända kolumner genom att fråga nedanstående vy 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 släppa kolumnen under period med låg aktivitet
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
Hur man släpper flera kolumner
Vi kan ange flera kolumner under släppkommandot
SQL> alter table books_master drop (AUTHOR,TITLE); Table altered.
Hoppas du gillar inlägg på alter table drop-kolumn i Oracle. Lämna gärna feedbacken
Läser också
Oracle primärnyckel
flytta tabell ändra
Ändra tabell byt namn på kolumn i Oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables006. htm