Questions tagged «psql»

psql是PostgreSQL的主要交互式终端。(请勿将这个标签用于针对PostgreSQL的问题!)

4
如何有条件地停止psql脚本(基于变量值)?
让我们考虑以下示例(从psql脚本开始): \c :db_to_run_on TRUNCATE the_most_important_table; -- tried to avoid similarities to anything that exists out there 现在,如果通过命令运行它 psql [connection details] -v db_to_run_on=\'dev_database\' 然后它就运行了,用户很高兴。但是,如果他决定指定-v db_to_run_on=production_database呢?(让我们假设这会发生,就像人们rm -rf / # don't try this at home!!!偶尔运行一样。)希望该表有一个新的备份... 因此出现了一个问题:如何检查传递给脚本的变量并根据其值停止进一步处理?
10 postgresql  psql 


2
psql:SELECT *…除了一列
我寻找一种简单的方法来选择除psql中的所有列以外的所有列。 随着psql我的意思是交互式命令行。 我对扩展*到带引号的列名列表的工具感到满意。然后,我可以删除专栏以手动删除。 我的问题只是关于psql的交互用法。这与那些对sql标准不满意的人以及想要执行“ select * -foo”之类的问题的问题不是重复的。
10 postgresql  psql 

6
将参数传递给psql
我在Postgres 8.3中运行一个plpgsql脚本-我想通过psql将参数传递给该脚本。我目前正在执行以下脚本: psql -d database -u user -f update_file.sql 我碰到了该链接,该链接解释了PGOPTIONS环境变量,但不适用于“自定义”参数。即我收到一个错误,因为该设置未在postgres.conf文件中列出。 -bash-3.2$ export PGOPTIONS='--pretend=true' -bash-3.2$ psql -d my_db -f update_database.sql psql: FATAL: unrecognized configuration parameter "pretend" 还有其他想法吗?理想情况下,我想避免环境变量...
10 postgresql  psql 

2
如何在不等待结果的情况下从psql执行查询?
我的查询(从现有表创建新表)需要很长时间。因此,我在办公室中建立了一个远程数据库-那里有更多RAM。 我可以像往常一样使用psql从家里连接到数据库。 如何告诉远程服务器从终端执行我的查询而不必等待响应? (postgresql-9.2,Linux环境) 编辑:我愿意接受其他解决方案,没有必要使用psql

1
Postgres客户端复制(\ copy)命令没有访问临时表的权限?
我正在生成SQL命令列表,以导出一些最终使用psql -f运行的数据。所有查询都获得相同的数据子集,所以我认为我会考虑将资格限定在内,并在诸如此类的临时表中放入合格用户ID的列表。 create temporary table tmp_export_users as (select id from users where ...) 然后参考我的\ copy命令中的内容 \copy (select ... from table where user_id in (select id from tmp_export_users)) TO 'filename.csv' WITH CSV HEADER 这些都在同一个文件中,每行一个,然后运行它们-f我得到了以下错误:复制命令看不到临时表,因此我猜想客户端复制命令实际上不能使用相同的postgres会话为psql。 那是对的吗?有没有办法改变这种行为?

2
使用psql和--disable-triggers恢复纯文本pg_dump
我必须使用一个简短的脚本执行一些测试,以更新我的一张表中的某些“旧版”数据。 我非常谨慎,我使用未经测试的脚本决定先备份相关表。最简单的方法是: pg_dump -a --file table.sql -t table database 现在我做了我必须做的,检查了结果,发现它们不尽人意。我对自己说:我很幸运能得到那张桌子的备份。 备份表时已经警告过我: pg_dump: NOTICE: there are circular foreign-key constraints among these table(s): pg_dump: table pg_dump: You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints. pg_dump: Consider using a full dump instead of a …

1
是否有Postgres管理员GUI可以执行包含多个sql文件的主文件
我正在编写一个很长的脚本。我想将脚本分解为更小,更易于管理的脚本,并将每个sql文件包含在主文件中,然后仅执行主文件。 例: master.sql 内容(我不知道使用的语法): file1.sql file2.sql file3.sql 我已经找到了一些有关psql -f在命令行中使用并\i包含这些文件的教程,但是这里的首选是避免终端,并使用GUI来管理我的数据库并执行master.sql脚本。 在任何postgres管理GUI中都可以吗?大概不在 pgAdmin中。

2
使用\ copy时在psql中进行变量替换
我正在使用psql命令\ copy,我想像在编写查询脚本时一样,从外壳(用于表名)向其传递变量。我已经阅读了psql的文档: 该命令的语法与SQL COPY命令的语法相似。请注意,因此,特殊的解析规则适用于\ copy命令。特别是,变量替换规则和反斜杠转义不适用。 这似乎很确定,但是我想知道是否有人知道解决方法?

3
如何串联psql变量?
如何连接两个psql(PostgreSQL客户端)变量?我想通过串联目录路径变量和文件名变量来生成绝对路径。 我已经试过了: \set path '/tmp/' \set file 'foo' \echo :path:file 但是psql在路径和文件之间放置一个空格,并输出: /tmp/ foo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.