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
Lepaskan: 2024-12-30 15:46:09
asal
451 orang telah melayarinya

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;
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan