在本地计算机上,我保存了一些查询,这些查询会定期更新,然后希望在远程生产数据库上重新运行。这是一个示例:
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个字符。
我想做的是:
zsh
打开本地终端会话psql
有时这可行,但有时却无效。当它不起作用时,粘贴的查询将显示在屏幕上,提示从dbname=>
变为dbname(>
。按 return 只会在同一提示下开始新行。
当然,我可以通过按 control + c 返回常规提示符。但是查询永远不会运行。
什么决定了是否可以粘贴到查询中?我认为问题与长度限制或某些空白字符的存在有关。有什么办法可以克服这些限制? (在这种情况下,我意识到我也可以运行psql -f
并将其指向本地文件。但是,这更加复杂并且并不总是有效,例如在远程会话中运行psql
时。 )