Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh 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!