首页 > 数据库 > mysql教程 > PostgreSQL中如何动态生成表名?

PostgreSQL中如何动态生成表名?

Patricia Arquette
发布: 2024-12-30 15:46:09
原创
427 人浏览过

How Can I Dynamically Generate Table Names in PostgreSQL?

在 PostgreSQL 中动态生成表名称

在 SQL 中,不支持动态 SQL,除了 PL/PgSQL 变体,它可以创建动态查询。要将一个查询的结果用作另一个查询中的表名称,您可以使用 PL/PgSQL EXECUTE 语句。

这里是一个示例:

DO
$$
BEGIN
EXECUTE format('CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE,'yyyy-mm-dd'));
END;
$$ LANGUAGE plpgsql;
登录后复制

中的 %I 格式说明符format 函数正确引用标识符,包括表名,从而无需使用 quote_ident 显式引用。

防止 SQL 注入漏洞,请考虑对文字使用 EXECUTE ... USING 语句,而不是带有 %L 的 format(...)。对于像表/列名这样的标识符,%I 模式的简洁性仍然是 quote_ident 的有用替代方案。

以上是PostgreSQL中如何动态生成表名?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板