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

Cách thay đổi bảng trong Oracle

Chúng tôi thường cần thay đổi Bảng trong Oracle tùy thuộc vào các thay đổi và nâng cấp Yêu cầu. Dưới đây là một số điểm quan trọng về câu lệnh bảng Alter

  • Bạn thay đổi hoặc sửa đổi một bảng bằng cách sử dụng ALTER TABLE tuyên bố.
  • Bảng phải được chứa trong lược đồ của bạn Để thay đổi một bảng hoặc bạn phải có đặc quyền đối tượng ALTER cho bảng hoặc đặc quyền hệ thống ALTER BẤT KỲ BẢNG.
  • Nếu một dạng xem, dạng xem cụ thể hoá, bộ kích hoạt, chỉ mục dựa trên hàm, kiểm tra ràng buộc, hàm, thủ tục của gói phụ thuộc vào bảng cơ sở, thì việc thay đổi bảng cơ sở hoặc các cột của nó có thể ảnh hưởng đến đối tượng phụ thuộc. Ví dụ:đối tượng plsql trở thành không hợp lệ nếu đối tượng bảng phụ thuộc bị thay đổi và bạn phải làm cho chúng hợp lệ trở lại

Sửa đổi các đặc tính vật lý (INITRANS hoặc các thông số lưu trữ)

Chúng ta có thể sửa đổi tham số lưu trữ của bảng bằng cách sử dụng câu lệnh bảng Alter. Chúng tôi có thể sửa đổi inittrans như thế này

ALTER TABLE TABLE_NAME INITRANS 10;

Di chuyển bảng sang phân đoạn hoặc vùng bảng mới

Chúng tôi có thể di chuyển bảng không phân vùng hoặc phân vùng của bảng sang một phân đoạn mới hoặc vùng bảng mới nếu được yêu cầu

Alter table table_name move tablespace <tablespace name>

Chúng tôi thậm chí có thể sử dụng lệnh di chuyển để thay đổi bất kỳ tham số lưu trữ nào của các bảng không được sửa đổi bằng lệnh thay đổi bảng

Thay đổi bảng trong tiên tri để thay đổi kiểu dữ liệu

Chúng tôi có thể thay đổi kiểu dữ liệu của bất kỳ cột nào bằng lệnh thay đổi bảng thay đổi

ALTER TABLE <table_name>
MODIFY (<column_name>  <new_data_type>);
Before
SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- -----------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)


After
SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(20)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)

sửa đổi kiểu dữ liệu cột trong oracle

Thêm cột mới / Bỏ cột / đổi tên cột

Chúng ta có thể thêm một cột mới vào định nghĩa bảng

Sử dụng lệnh thêm bảng thay đổi

ALTER TABLE <table_name>
ADD (<New column_name>  <new_data_type>);

Oracle cho phép bạn đổi tên các cột hiện có trong bảng. Sử dụng mệnh đề RENAME COLUMN của câu lệnh ALTER TABLE để đổi tên cột

Oracle cho phép bạn bỏ cột trong bảng bằng lệnh

Thay đổi cột thả cột;
Vui lòng kiểm tra bài viết dưới đây để tìm hiểu chi tiết về những điều này

thay đổi bảng thêm tiên tri cột

Đặt một cột không sử dụng và thả cột không sử dụng

nếu bạn lo lắng về tài nguyên bị tiêu tốn khi giảm cột thì 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.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;

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 <table_name>
Drop  UNUSED COLUMN ;

Thêm, sửa đổi hoặc loại bỏ các ràng buộc toàn vẹn được liên kết với bảng hoặc bạn cũng có thể bật / tắt các ràng buộc

Thêm ràng buộc được thực hiện bằng cách sử dụng bảng thay đổi thêm ràng buộc

ALTER TABLE EMP ADD CONSTRAINT EMP_FK FOREIGN KEY (DEPT_NO) REFERENCES 
DEPT(DEPT_NO);

Bỏ Ràng buộc - được thực hiện bằng cách sử dụng

ALTER TABLE DROP CONSTRAINT <constraint_name> command;

Ràng buộc Bật / Tắt - Có thể tạo các ràng buộc ở chế độ TẮT / BẬT hoặc có thể tắt hoặc bật bằng lệnh

ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>

Đổi tên bảng

Oracle cũng cho phép bạn đổi tên bảng

Rename <table name>  to <new table name>;

Thay đổi bộ nhớ cache của bảng / không có bộ nhớ cache, Nén, song song

Oracle cho phép Thay đổi bộ nhớ cache của bảng / không có bộ nhớ cache, Nén, song song

Các bài viết có liên quan

Liệt kê tất cả các bảng trong Oracle
tạo bảng oracle
ora-20005:thống kê đối tượng bị khóa
thay đổi bảng di chuyển
cách kiểm tra tất cả các ràng buộc trên bảng trong oracle
https ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.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. Có cách nào để đưa ra thông báo lỗi thân thiện với người dùng về vi phạm ràng buộc không

  2. Làm thế nào để nâng cao ngoại lệ trong PL / SQL?

  3. Hàm tương đương cho DATEADD () trong Oracle

  4. Lỗi 1033 nhận được đăng nhập vào chế độ chờ

  5. Hàm ATAN () trong Oracle