Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menjana Nama Jadual Secara Dinamik dalam PostgreSQL?

Bagaimanakah Saya Boleh Menjana Nama Jadual Secara Dinamik dalam PostgreSQL?

Patricia Arquette
Patricia Arquetteasal
2024-12-30 15:46:09399semak imbas

How Can I Dynamically Generate Table Names in PostgreSQL?

Menjana Nama Jadual Secara Dinamik dalam PostgreSQL

Dalam SQL, SQL dinamik tidak disokong kecuali dalam varian PL/PgSQL, yang boleh mencipta pertanyaan dinamik. Untuk menggunakan hasil pertanyaan sebagai nama jadual dalam pertanyaan lain, anda boleh menggunakan pernyataan PL/PgSQL EXECUTE.

Berikut ialah contoh:

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

Penentukan format %I dalam fungsi format dengan betul memetik pengecam, termasuk nama jadual, menghapuskan keperluan untuk petikan eksplisit dengan quote_ident.

Untuk mengelakkan kelemahan suntikan SQL, pertimbangkan untuk menggunakan EXECUTE ... USING statement untuk literal dan bukannya format(...) dengan %L. Untuk pengecam seperti nama jadual/lajur, ketepatan corak %I kekal sebagai alternatif yang berguna kepada quote_ident.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Nama Jadual Secara Dinamik dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn