PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL - nilai dinamis sebagai nama tabel

Anda harus menggunakan PL/PgSQL EXECUTE pernyataan, melalui DO blok atau fungsi PL/PgSQL (CREATE OR REPLACE FUNCTION ... LANGUAGE plpgsql ). SQL dinamis tidak didukung dalam dialek SQL biasa yang digunakan oleh PostgreSQL, hanya dalam varian PL/PgSQL prosedural.

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

format(...) %I function fungsi dan %L format-specifier masing-masing melakukan pengidentifikasi dan kutipan literal yang tepat.

Untuk literal saya sarankan menggunakan EXECUTE ... USING daripada format(...) dengan %L , tetapi untuk pengidentifikasi seperti nama tabel/kolom format %I pattern adalah alternatif ringkas yang bagus untuk verbose quote_ident panggilan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemahaman operasi batch JDBC

  2. Rails + Postgres drop error:database sedang diakses oleh pengguna lain

  3. Ekspor dan impor tabel dump (.sql) menggunakan pgAdmin

  4. Contoh Tabel dan Metode Lain untuk Mendapatkan Tuple Acak

  5. Perbedaan antara LIKE dan ~ di Postgres