簡體   English   中英

准備好的語句-使用參數指定表名

[英]prepared statement - using parameter to specify table name

在Windows 10上使用pgadmin4,postgres 9.6

我正在嘗試使用參數在准備好的語句中指定表名,如下面的代碼所示。 但是我確實收到如下語法錯誤。 請注意,我可以將參數與where條件等配合使用。

詢問

prepare mySelect(text) as 
    select * 
        from $1
        limit 100;

execute mySelect('some_table');

pgAdmin消息

ERROR:  syntax error at or near "$1"
LINE 3:      from $1
                  ^
SQL state: 42601
Character: 50

這不可能。 prepare語句是持久性執行計划-執行計划包含固定的數據源-因此表,列名不能在此處可變。

當更改表,列時,然后更改查詢的語義-您將獲得不同的執行計划,這在准備好的語句中是不可能的。 准備好的語句的主要用例是重用執行計划-計划一次,再執行一次。 但是有一些主要限制-只能更改某些參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM