Tìm hiểu Temporary tables trong Oracle

Temporary tables hay còn gọi là bảng tạm, đây là bảng dùng để lưu trữ tạm thời dữ liệu, tuy nhiên nó vẫn chứa một số tính năng của một bảng thông thường như triggers, lưu dữ liệu, ... chỉ có một điều khác biệt là bảng tạm không thể tạo khóa ngoại đến các bảng khác.

Temporary sẽ bị xóa sau khi kết thúc Session hoặc Transaction, đặc tính này sẽ giúp tiết kiệm tài nguyên, và tránh được sự xung đột giữa các phiên làm việc. Chúng ta có hai loại bảng tạm, đó là Global Temporary và Local Temporary.

1. Global Temporary trong Oracle

Giống như tên của nó, global temporary sẽ có phạm vi ảnh hưởng tới tất cả các kết nối và nó sẽ tự động xóa đi khi tất cả kết nối hoàn tất (được tắt), tên của bảng tạm sẽ được bắt đầu bằng hai kí tự ##.

Sau đây là cú pháp dùng để tạo global temporary.

CREATE GLOBAL TEMPORARY TABLE table_name  
( column1 datatype [ NULL | NOT NULL ],  
  column2 datatype [ NULL | NOT NULL ],  
  ...  
  column_n datatype [ NULL | NOT NULL ]  
);  

Trong đó:

  • table_name là tên bảng tạm mà bạn muốn tạo
  • column1, column2, ... column_ n là các columns như một bảng thông thường

CREATE GLOBAL TEMPORARY TABLE students  
( student_id numeric(10) NOT NULL,  
  student_name varchar2(50) NOT NULL,  
  student_address varchar2(50)  
);  

2. Local Temporary trong Oracle

Local temporary là loại bảng tạm sẽ được tạo ra tại một phiên làm việc, tức là một kết nối, nó sẽ tự động xóa khi kết nối đó kết thúc, tên của local temporary được bắt đầu bằng kí tự #.

Sau đây là cú pháp của local temporary.

DECLARE LOCAL TEMPORARY TABLE table_name  
( column1 datatype [ NULL | NOT NULL ],  
  column2 datatype [ NULL | NOT NULL ],  
  ...  
  column_n datatype [ NULL | NOT NULL ]  
);  

Trong đó:

  • table_name: Là tên của bảng tạm
  • column1, column2,... column_ n là các column của bảng

3. Khi nào thì nên dùng Temporary?

Việc này phụ thuộc vào từng trường hợp cụ thể và mục đích của người phân tích database, tuy nhiên có một đặc điểm thông thường đó là bảng tạm chỉ là chứa dữ liẹu tạm thời, vì vậy nó không được dùng để chứa dữ liệu chính của dự án.

Như vậy là mình đã giới thiệu xong cấu trúc để tạo bảng tạm trong Oracle, hẹn gặp lại các bạn tại bài tiếp theo.

-------------------#####-------------------

Lưu ý: bài viết có tham khảo hoặc dịch lại từ http://javatpoint.com.

Nguồn: freetuts.net