[英]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.