pgsql 想把select 出来的指赋值给一个变量,并使用这个变量分别该怎么做?

发布于 2022-09-12 00:24:38 字数 486 浏览 29 评论 0

`

postgres=# select oid from pg_class  where relname=:'tablename';
  oid
-------
 24678
(1 row)
以下是我失败的几个尝试:

postgres=# select oid into partition_table_id from pg_class where relname=:'tablename';
ERROR: There is no hash distributable column

postgres=# select oid from pg_class where relname=:'tablename' into partition_table_id;
ERROR: syntax error at or near "into"
LINE 1: ...t oid from pg_class where relname='table_level_1' into parti...

`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吃不饱 2022-09-19 00:24:38
DECLARE variable_col int := (SELECT oid FROM pg_class WHERE relname='tablename');

SELECT * FROM pg_class WHERE oid=variable_col;

手头没 pg 库,没执行,大概意思理解一下。

P.S. variable_col 是变量名,我瞎起的;int 记得改成你那个 oid 的数据类型。

南…巷孤猫 2022-09-19 00:24:38
postgres=# select oid as var from pg_class where relname='pg_toast_16384' \gset

postgres=# select oid,relname as var from pg_class where oid=:var;
  oid  |      var
-------+----------------
 16387 | pg_toast_16384
(1 row)

postgres=# select :'var';
 ?column?
----------
 16387
(1 row)

postgres=# select :'var'||'123';
 ?column?
----------
 16387123
(1 row)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文