sql >> Databasteknik >  >> RDS >> Oracle

ändra tabellsläppkolumn i Oracle-databasen

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


  1. Hur man skapar och distribuerar Azure Database for MySQL Server med Azure Portal och Workbench

  2. Hjälp oss att modernisera IDE i MS Access – din röst räknas!

  3. Ersätter text i en BLOB-kolumn

  4. Välj och redigera vertikala block i SQL Server Management Studio (SSMS) - SQL Server / TSQL självstudie del 9