在PostgreSQL的psql中使用脚本变量
PostgreSQL中自定义脚本使用变量的方式与MS SQL Server不同。在psql中,使用set
命令创建变量:
<code class="language-sql">\set myvariable value</code>
在查询中替换变量,使用以下语法:
<code class="language-sql">SELECT * FROM :myvariable.table1;</code>
或者,你可以在条件语句中使用它:
<code class="language-sql">SELECT * FROM table1 WHERE :myvariable IS NULL;</code>
从psql 9.1开始,可以在引号内展开变量:
<code class="language-sql">\set myvariable value SELECT * FROM table1 WHERE column1 = :'myvariable';</code>
在psql 9.1之前的版本中,当在条件字符串查询中使用变量时,例如:
<code class="language-sql">SELECT * FROM table1 WHERE column1 = ':myvariable';</code>
需要在变量本身包含引号:
<code class="language-sql">\set myvariable 'value'</code>
对于字符串操作,请考虑以下技巧:
<code class="language-sql">\set quoted_myvariable '\'' :myvariable '\''</code>
这会创建相同字符串的带引号和不带引号的变量,允许你执行以下操作:
<code class="language-sql">INSERT INTO :myvariable.table1 SELECT * FROM table2 WHERE column1 = :quoted_myvariable;</code>
以上是如何在PostgreSQL的psql中有效使用变量?的详细内容。更多信息请关注PHP中文网其他相关文章!