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

Sử dụng bảng tạm thời để thay thế mệnh đề WHERE IN

Không cần phải lo lắng về xung đột.

Lược đồ pg_temp là phiên cụ thể. Nếu bạn có một câu lệnh đồng thời trong một phiên riêng biệt, nó sẽ sử dụng một lược đồ khác (ngay cả khi bạn thấy nó có cùng tên).

Tuy nhiên, có hai lưu ý:

  1. Mỗi khi bạn tạo các đối tượng tạm thời, danh mục hệ thống sẽ tạo một lược đồ tạm thời và chính các đối tượng đó. Điều này có thể dẫn đến lộn xộn nếu được sử dụng thường xuyên.

    Do đó, đối với các tập hợp nhỏ / sử dụng thường xuyên, tốt hơn hết bạn nên sử dụng in hoặc with (cả hai điều mà Postgres đối phó khá tốt). Đôi khi, việc "lừa" người lập kế hoạch sử dụng bất kỳ kế hoạch nào bạn đang tìm kiếm cũng hữu ích bằng cách sử dụng hàm trả về tập hợp bất biến.

  2. Trong trường hợp bạn quyết định thực sự sử dụng các bảng tạm thời, thường tốt hơn là lập chỉ mục và phân tích chúng khi bạn đã điền đầy đủ. Nếu không, bạn đang làm nhiều việc hơn là viết một with tuyên bố.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả lại id nếu một hàng tồn tại, INSERT nếu không

  2. Lỗi khi lưu geodjango PointField

  3. postgresql - không thể tạo cơ sở dữ liệu - OperationalError:nguồn cơ sở dữ liệu template1 đang được người dùng khác truy cập

  4. SQL:Nhóm các giá trị tương tự của cột B, nhưng sắp xếp theo cột A

  5. Làm sắc nét dữ liệu của bạn với PostgreSQL 11