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
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