Oracle
 sql >> база данни >  >> RDS >> Oracle

променете колоната за отпадане на таблицата в базата данни на Oracle

Често се налага да пуснем колоната в таблицата. Има два начина да махнете колоната в Oracle
(a) да промените колоната за пускане на таблица в oracle
(b) да промените набора от таблица неизползвана колона в oracle

ИЗПУСКАНЕ КОЛОНА с помощта на ИЗПУСКАНЕ КОЛОНА

Тук в това пускаме колоната от таблицата с помощта на командата по-долу .

ALTER TABLE table_name
DROP COLUMN col_name;

Това изявление отнема изключително заключване на масата и ако таблицата е голяма, ще отнеме време за изпълнение на заявката

Пример

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

Нека пуснем колона от тази таблица

SQL> alter table books_master drop column PUBLISH_YEAR;
Table altered.

SQL > Desc BOOKS_MASTER
SQL> Select * from Books_master;

ПУСНЕТЕ КОЛОНА с помощта на SET UNUSED

  • ако се притеснявате за ресурса, изразходван при отпадането на колоната, можете да използвате оператора ALTER TABLE...SET UNUSED.
  • Този израз маркира една или повече колони като неизползвани, но всъщност не премахва данните от целевата колона или не възстановява дисковото пространство, заето от тези колони.
  • Колона, която е маркирана като неизползвана, не се показва в заявки или изгледи на речник с данни и името й се премахва, за да може нова колона да използва повторно това име. Всички ограничения, индекси и статистически данни, дефинирани в колоната, също се премахват.

Синтаксис

ALTER TABLE <име_на_таблица>
ЗАДАДЕТЕ НЕИЗПОЛЗВАНА КОЛОНА <име_на_колона>;

Можем да премахнем неизползваната колона по-късно, когато ресурсът е по-нисък, като използваме командата

ALTER TABLE 
Изхвърлете  НЕИЗПОЛЗВАНИ КОЛОНИ;

Ако имате големи таблици, можете да намалите количеството натрупани дневници за отмяна, като използвате опцията CHECKPOINT, която принуждава контролна точка след обработка на посочения брой редове. Контролните точки намаляват количеството регистрационни файлове за отмяна, натрупани по време на операцията на колоната за отпадане, за да се избегне потенциално изчерпване на пространството за отмяна.

ALTER TABLE table_name DROP UNUSED COLUMNS CHECKPOINT 500;

  • Ако сте използвали синтаксиса на контролната точка с вашата команда drop, тогава можете да прекратите сесията (или да изключите базата данни) по средата на изпускането.
  • Таблицата няма да е налична за DML или заявка
  • можете да завършите командата „отпускане на колони“ с опцията „продължи“ (с незадължителна контролна точка).
alter table
drop columns continue checkpoint;

alter table
drop columns continue checkpoint 5000;

Пример
да продължим с предварително създадената таблица

SQL> alter table books_master set unused column ISBN;
Table altered.
SQL> desc books_master
SQL> Select * from Books_master;

Можем да проверим броя на неизползваните колони, като потърсим изгледа по-долу USER_UNUSED_COL_TABS, ALL_UNUSED_COL_TABS или DBA_UNUSED_COL_TABS

SQL> select * from DBA_UNUSED_COL_TABS where TABLE_NAME='BOOKS_MASTER';

Сега можете да пуснете колоната по време на период на ниска активност

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

Как да премахнете няколко колони

Можем да посочим няколко колони по време на команда за пускане

SQL> alter table books_master drop (AUTHOR,TITLE);
Table altered.

Надяваме се, че ви харесва публикацията в колоната за промяна на таблицата в oracle. Моля, предоставете обратната връзка

Също чете
Първичен ключ на Oracle
променете преместването на таблицата
променете колоната за преименуване на таблица в 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

  2. Oracle 10g приема 5-цифрена година в дата

  3. Съхранение на данни ETL профилиране на данни с Oracle Warehouse Builder

  4. Как да промените отрицателната стойност на положителна в Oracle?

  5. Инсталирайте Oracle Database Client стъпка по стъпка