MySQL nơi lưu trữ các bảng tạm thời

Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo bảng tạm thời và tiếp tục thả các bảng này. Các bảng tạm thời là các bảng dành riêng cho phiên được tạo trong phiên. Khi phiên kết thúc, bảng sẽ tự hủy. Một bảng tạm thời chỉ tồn tại trong một phiên; . Ví dụ: Session ID 501 đã tạo một bảng tạm thời thì session ID 502 không thể truy cập hoặc thao tác với nó. Hai phiên khác nhau có thể có một bảng tạm thời có cùng tên

Các bảng tạm thời hữu ích khi bạn muốn sử dụng một tập hợp con nhỏ của bảng lớn và nó đang được sử dụng nhiều lần trong một thủ tục được lưu trữ. Trong những trường hợp như vậy, thay vì áp dụng bộ lọc trên bảng nhiều lần, bạn có thể lưu tập hợp con của các bảng lớn trong một bảng tạm thời và sử dụng nó trong một thủ tục được lưu trữ

Thông tin quan trọng của các bảng tạm thời

  1. Bảng tạm thời của MySQL có mối quan hệ tách rời với lược đồ cơ sở dữ liệu, có nghĩa là khi chúng tôi xóa cơ sở dữ liệu MySQL, nó không nhất thiết phải loại bỏ các bảng tạm thời trong cơ sở dữ liệu
  2. Công cụ cơ sở dữ liệu InnoDB không hỗ trợ bảng tạm thời, được nén. Nếu bạn đã bật tham số InnoDB_strict_mode thì nó sẽ trả về lỗi. Nếu bạn tắt tham số InnoDB_strict_mode, MySQL sẽ đưa ra cảnh báo và tạo bảng có định dạng hàng không nén
  3. Để tạo một bảng tạm thời trong thủ tục được lưu trữ, người dùng phải có đặc quyền tạo bảng tạm thời. Sau khi được cấp, thì việc cập nhật, xóa hoặc chèn dữ liệu trong bảng tạm thời đó không yêu cầu bất kỳ đặc quyền nào. Có một hàm ý của hành vi này. Giả sử quy trình được lưu trữ sử dụng bảng tạm thời và NGƯỜI DÙNG 1 đã phát triển quy trình có đặc quyền tạo bảng tạm thời. Bây giờ, NGƯỜI DÙNG 2 cố gắng thực thi nhưng không có quyền tạo bảng tạm thời. Trong những trường hợp như vậy, MySQL sử dụng các đặc quyền của NGƯỜI DÙNG 1 để tạo bảng tạm thời. Sau khi thủ tục hoàn tất thành công, các đặc quyền sẽ được hoàn nguyên
  4. Bạn không thể tạo một bảng tạm thời dựa trên định nghĩa mà bảng đã có và nó nằm trên vùng bảng MySQL, vùng bảng chung hoặc vùng bảng InnoDB. Để tạo một bảng tạm thời dựa trên định nghĩa của một bảng khác, bạn phải sử dụng cú pháp sau

    1

    Chọn bảng tạm thời. . chọn * từ

  5. Không giống như các câu lệnh tạo bảng thông thường, câu lệnh Tạo bảng tạm thời không gây ra cam kết ngầm
  6. Bảng tạm thời có thể có cùng tên với bảng thông thường của MySQL. Ví dụ, mặc dù có một bảng tên là employee tồn tại trong cơ sở dữ liệu, bạn có thể tạo một bảng tạm thời có tên là employee trong cơ sở dữ liệu. Trong những trường hợp như vậy, bảng MySQL không thể truy cập được. Khi bảng tạm thời bị hủy, bảng vật lý có thể được truy cập lại. Vì vậy, luôn luôn là một cách tốt để tạo một bảng tạm thời với một số tên duy nhất hoặc đảm bảo rằng ứng dụng sẽ loại bỏ bảng tạm thời ngay sau khi hoàn thành mục đích của nó

Ví dụ về bảng tạm thời của MySQL

Cú pháp tạo bảng tạm như sau

1

2

3

4

5

6

7

tạo bảng tạm thời tblemployee

    (

    Cột_1 kiểu dữ liệu,

    Cột_2 kiểu dữ liệu,

    Cột_3 kiểu dữ liệu,

    

   )

Như bạn có thể thấy, cú pháp tạo bảng tạm thời cũng giống như cú pháp tạo bảng MySQL. Sự khác biệt duy nhất là bạn phải chỉ định từ khóa tạm thời giữa từ khóa tạo và bảng. Điều này rất quan trọng vì nếu bạn quên thêm từ khóa, nó sẽ tạo ra một bảng MySQL thông thường

Bây giờ, chúng ta hãy xem qua một số ví dụ về bảng tạm thời. Tôi sẽ chứng minh các trường hợp sử dụng sau

  1. Tạo bảng tạm thời và chèn dữ liệu vào bảng
  2. Tạo một bảng tạm thời bằng cách sử dụng đầu ra của câu lệnh chọn
  3. Thả bảng tạm thời
  4. Tạo một bảng tạm thời bằng cách sử dụng cấu trúc của một bảng khác

Tạo bảng tạm thời và chèn dữ liệu

Để tạo một bảng tạm thời mới có tên tblemployee trên cơ sở dữ liệu MySQL, hãy thực hiện truy vấn sau

1

2

3

4

5

6

7

tạo bảng tạm thời tblemployee

(

id int auto_increment Khóa chính key,

emp_name varchar(500),

emp_address varchar(500),

emp_dept_id int

)

Thực hiện truy vấn sau để chèn dữ liệu vào bảng tạm thời

1

2

3

4

5

chèn vào tblemployee(emp_name, emp_address,emp_dept_id)

giá trị

('Nisarg Upadhyay','Mehsana',10),

('Nirali U','Mehsana',20),

('Milan J','Mehsana',5);

Khi dữ liệu được chèn vào bảng tạm thời, hãy thực hiện truy vấn sau để xác minh rằng dữ liệu đã được chèn

1

Chọn * từ tblemployee;

Sau đây là đầu ra

MySQL nơi lưu trữ các bảng tạm thời
MySQL nơi lưu trữ các bảng tạm thời

Bây giờ, để xác minh phạm vi của bảng tblemployee, chúng ta hãy chạy cùng một truy vấn từ máy khách dòng lệnh MySQL. Để làm điều đó, hãy mở nó, cung cấp mật khẩu để kết nối với Máy chủ MySQL và thực hiện các truy vấn sau

1

2

Sử dụng sakila;

Chọn * từ tblemployee;

đầu ra. như bạn có thể thấy, truy vấn đã báo lỗi

MySQL nơi lưu trữ các bảng tạm thời
MySQL nơi lưu trữ các bảng tạm thời

Tạo một bảng tạm thời bằng cách sử dụng đầu ra của câu lệnh chọn

Giả sử tôi muốn tạo một bảng tạm thời bằng đầu ra của truy vấn chọn. Ví dụ, tôi muốn chèn chi tiết của bảng movies với thể loại của nó vào bảng tạm thời có tên là temp_film_details. Để làm điều đó, hãy thực hiện truy vấn sau

1

2

3

4

5

6

tạo bảng tạm thời tbl_film_details

 

chọn tiêu đề, mô tả,release_year,rental_rate ,rental_duration,special_features,replacement_cost,c.tên từ phim a

inner tham gia film_category b on a.film_id=b. phim_id

inner tham gia danh mục c on b.category_id=c. category_id

Giới hạn 10;

Khi các chi tiết được chèn vào bảng tạm thời, hãy thực hiện truy vấn sau để xem dữ liệu của bảng tạm thời

1

Chọn * từ tbl_film_details

đầu ra

MySQL nơi lưu trữ các bảng tạm thời
MySQL nơi lưu trữ các bảng tạm thời

Thả bảng tạm thời

Để hủy bảng tạm thời, chúng ta có thể sử dụng cú pháp sau

1

Thả bảng tạm thời tbl_film_details

Như tôi đã đề cập rằng trên cơ sở dữ liệu, bảng tạm thời và bảng InnoDB có thể có cùng tên, vì vậy hãy đảm bảo bạn chỉ định từ khóa tạm thời;

Tóm lược

Trong bài viết này, chúng ta đã tìm hiểu về bảng tạm thời của MySQL và đặc điểm của nó. Chúng tôi cũng đã học cách chúng tôi có thể tạo và thả bảng tạm thời với các trường hợp sử dụng khác nhau

Các bảng tạm thời có được lưu trữ trong bộ nhớ không?

Tất cả điều này có nghĩa là các bảng tạm thời hoạt động giống như bất kỳ loại bảng cơ sở nào khác ở chỗ chúng được ghi nhật ký và được lưu trữ giống như chúng. Trên thực tế, các bảng tạm thời có khả năng vẫn được lưu trong bộ nhớ đệm nhưng chỉ khi chúng được sử dụng thường xuyên . giống như với một bảng cơ sở.

Tôi có thể tìm bảng tạm thời ở đâu?

Bảng tạm thời nằm trong bên trong cơ sở dữ liệu hệ thống tempdb .

MySQL lưu trữ dữ liệu tạm thời như thế nào?

Trong MySQL, cú pháp tạo bảng tạm giống như cú pháp tạo câu lệnh bảng thông thường ngoại trừ từ khóa TEMPORARY. Chúng ta hãy xem câu lệnh sau tạo bảng tạm thời. mysql> TẠO BẢNG TẠM THỜI tên_bảng ( cột_1, cột_2,. , table_constraint .

Các bảng tạm thời SQL được tạo ở đâu?

Các bảng tạm thời cục bộ được tạo trong cơ sở dữ liệu tempdb với một tên duy nhất vì chúng có thể được tạo với cùng tên bởi các kết nối khác. Bằng cách này, SQL Server ngăn ngừa xung đột trùng tên.