Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

thay đổi cột thả bảng trong cơ sở dữ liệu oracle

Chúng ta thường cần bỏ cột trong bảng. Có hai cách để thả cột trong Oracle
(a) thay đổi cột thả bảng trong oracle
(b) thay đổi bảng đặt cột không sử dụng trong oracle

DROP COLUMN bằng DROP COLUMN

Ở đây, chúng tôi thả cột khỏi bảng bằng lệnh dưới đây .

ALTER TABLE table_name
DROP COLUMN col_name;

Câu lệnh này có khóa riêng trên bảng và nếu bảng lớn, sẽ mất thời gian để thực hiện truy vấn

Ví dụ

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

Cho phép thả một cột khỏi bảng này

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

SQL > Desc BOOKS_MASTER
SQL> Select * from Books_master;

DROP COLUMN bằng SET UNUSED

  • nếu bạn lo lắng về tài nguyên bị tiêu tốn khi giảm cột, bạn có thể sử dụng câu lệnh ALTER TABLE… SET UNUSED.
  • Câu lệnh này đánh dấu một hoặc nhiều cột là không được sử dụng nhưng không thực sự xóa dữ liệu cột đích hoặc khôi phục dung lượng đĩa bị chiếm bởi các cột này.
  • Một cột được đánh dấu là không sử dụng sẽ không được hiển thị trong truy vấn hoặc chế độ xem từ điển dữ liệu và tên của nó bị xóa để một cột mới có thể sử dụng lại tên đó. Tất cả các ràng buộc, chỉ mục và thống kê được xác định trên cột cũng bị xóa.

Cú pháp

ALTER TABLE
SET UNUSED COLUMN ;

Chúng ta có thể loại bỏ cột không sử dụng sau này khi tài nguyên thấp hơn bằng cách sử dụng lệnh

ALTER TABLE
Thả các CỘT CHƯA CÓ;

Nếu bạn có các bảng lớn, bạn có thể giảm số lượng nhật ký hoàn tác được tích lũy bằng cách sử dụng tùy chọn CHECKPOINT, buộc một điểm kiểm tra sau khi số hàng được chỉ định đã được xử lý. Kiểm tra cắt giảm lượng nhật ký hoàn tác được tích lũy trong hoạt động cột thả để tránh tình trạng cạn kiệt dung lượng hoàn tác có thể xảy ra.

ALTER TABLE table_name DROP UNUSED COLUMNS CHECKPOINT 500;

  • Nếu bạn đã sử dụng cú pháp điểm kiểm tra với lệnh thả thì bạn có thể kết thúc phiên (hoặc tắt cơ sở dữ liệu) khi đang thả.
  • Bảng sẽ không có sẵn cho DML hoặc truy vấn
  • bạn có thể kết thúc lệnh "thả cột" bằng tùy chọn "tiếp tục" (với một điểm kiểm tra tùy chọn).
alter table
drop columns continue checkpoint;

alter table
drop columns continue checkpoint 5000;

Ví dụ
hãy tiếp tục với bảng đã tạo trước đó

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

Chúng tôi có thể kiểm tra số lượng cột không sử dụng bằng cách truy vấn chế độ xem bên dưới USER_UNUSED_COL_TABS, ALL_UNUSED_COL_TABS hoặc DBA_UNUSED_COL_TABS

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

Bây giờ bạn có thể giảm cột trong khoảng thời gian hoạt động thấp

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

Cách thả nhiều cột

Chúng tôi có thể chỉ định nhiều cột trong khi thả lệnh

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

Hy vọng bạn thích bài đăng trên cột thả bảng thay đổi trong oracle. Vui lòng cung cấp phản hồi

Cũng đã đọc
Khóa chính Oracle
thay đổi bảng di chuyển
thay đổi cột đổi tên bảng trong 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. Làm thế nào để viết truy vấn chèn oracle được tham số hóa?

  2. Tệp đính kèm trong Ứng dụng Oracle R12

  3. Lược đồ APPLICSYSPUB

  4. JDBC - Oracle ArrayIndexOutOfBoundsException

  5. Cách hiển thị nhận xét của một cột bằng thao tác mô tả