是什么决定了将大查询粘贴到psql的限制?

时间:2018-10-03 15:39:23

标签: postgresql zsh psql

在本地计算机上,我保存了一些查询,这些查询会定期更新,然后希望在远程生产数据库上重新运行。这是一个示例:

INSERT INTO exp_forum_member (forum_id, member_id)
SELECT 32, uid
FROM exp_members
WHERE email IN (
    'andrew@beaver.com',
    'charles@dragon.com',
    'edgar@frog.com'
)
ON CONFLICT DO NOTHING;

除了真实的东西总共有134行和3636个字符。

我想做的是:

  1. 在Mac上使用zsh打开本地终端会话
  2. 使用psql
  3. 连接到远程数据库
  4. 粘贴查询
  5. 点击返回

有时这可行,但有时却无效。当它不起作用时,粘贴的查询将显示在屏幕上,提示从dbname=>变为dbname(>。按 return 只会在同一提示下开始新行。

当然,我可以通过按 control + c 返回常规提示符。但是查询永远不会运行。

什么决定了是否可以粘贴到查询中?我认为问题与长度限制或某些空白字符的存在有关。有什么办法可以克服这些限制? (在这种情况下,我意识到我也可以运行psql -f并将其指向本地文件。但是,这更加复杂并且并不总是有效,例如在远程会话中运行psql时。 )

0 个答案:

没有答案