PostgreSQL 提供了基於執行時間值動態產生表名稱的進階功能。若要建立具有動態名稱的表,您必須在 DO 區塊或 PL/PgSQL 函數中使用 PL/PgSQL EXECUTE 語句。
EXECUTE 語句可讓您執行動態 SQL 指令,使您能夠從傳回的字串建構表名稱。考慮以下範例:
SELECT 'backup_' || TO_CHAR(CURRENT_DATE, 'yyyy-mm-dd')
此查詢傳回表示所需資料表名稱的字串。若要使用此字串建立表,您可以使用下列語法:
DO $$ BEGIN EXECUTE format('CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE, 'yyyy-mm-dd')); END; $$ LANGUAGE plpgsql;
在此程式碼中,format(...) 函數確保正確引用表名稱。 %I 格式說明符會自動引用標識符,而 format(...) 語法處理文字。
對於文字,建議使用 EXECUTE ... USING 而不是帶有 %L 的 format(...) 。然而,對於像表/列名這樣的標識符,%I 模式提供了一種簡潔而優雅的方式來取代手動引用。
透過使用 EXECUTE 語句和 PL/PgSQL,您可以根據傳回值動態產生表名,讓您的 PostgreSQL 應用程式具有更大的靈活性和自動化。
以上是如何在 PostgreSQL 中建立動態命名表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!