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

PostgreSQL - giá trị động dưới dạng tên bảng

Bạn sẽ cần sử dụng PL / PgSQL EXECUTE câu lệnh, thông qua DO khối hoặc hàm PL / PgSQL (CREATE OR REPLACE FUNCTION ... LANGUAGE plpgsql ). SQL động không được hỗ trợ trong phương ngữ SQL thông thường được PostgreSQL sử dụng, chỉ trong biến thể PL / PgSQL thủ tục.

DO
$$
BEGIN
EXECUTE format('CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE,'yyyy-mm-dd'));
END;
$$ LANGUAGE plpgsql;

Định dạng format(...) của hàm %I%L định dạng-specifier thực hiện định danh thích hợp và trích dẫn theo nghĩa đen, tương ứng.

Đối với các chữ, tôi khuyên bạn nên sử dụng EXECUTE ... USING chứ không phải định dạng format(...) với %L , nhưng đối với các số nhận dạng như tên bảng / cột, định dạng %I mẫu là một sự thay thế ngắn gọn tốt đẹp cho quote_ident dài dòng cuộc gọi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lưu trữ và truy xuất hình ảnh trong Postgresql bằng Java

  2. Dữ liệu mới không tồn tại trong cột mảng Rails trên Postgres

  3. Tối ưu hóa truy vấn trong PostgreSQL. GIẢI THÍCH Khái niệm cơ bản - Phần 2

  4. SAO CHÉP với tên tệp động

  5. PostgreSQL 12:Khóa ngoại và bảng phân vùng