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

Tên bảng động trong postgreSQL 9.3

Vui lòng không làm điều này - trước tiên hãy xem xét các lựa chọn thay thế, bắt đầu với phân vùng và loại trừ ràng buộc .

Nếu bạn phải sử dụng tên bảng động, hãy làm điều đó ở cấp ứng dụng trong quá trình tạo truy vấn.

Nếu vẫn thất bại, bạn có thể sử dụng quy trình PL / PgSQL như:

CREATE OR REPLACE pleasedont(int year) RETURNS TABLE basetable AS $$
BEGIN
    RETURN QUERY EXECUTE format('SELECT col1, col2, col3 FROM %I', 'basetable_'||year);
END;
$$ LANGUAGE plpgsql;

Điều này sẽ chỉ hoạt động nếu bạn có một bảng cơ sở có cùng cấu trúc với các bảng con. Nó cũng thực sự khó khăn khi bạn bắt đầu thêm các từ định tính (nơi ràng buộc mệnh đề, v.v.) và nó ngăn cản bất kỳ loại bộ nhớ đệm kế hoạch hoặc sử dụng câu lệnh đã chuẩn bị hiệu quả nào.




  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 kết quả tìm kiếm được xếp hạng bằng cách sử dụng gin index với sqlalchemy

  2. xây dựng truy vấn động SQL với thư viện python psycopg2 và sử dụng các công cụ loại chuyển đổi tốt

  3. Rails có gì khác biệt trong chỉ mục duy nhất và validates_uniqueness_of

  4. Giá trị lỗi không tồn tại - postgresql CHÈN VÀO sự cố

  5. Làm cách nào để truy vấn SQL cho các từ có dấu câu trong Postgresql?