我正在使用Windows批处理文件使用psql连接到postgres。我正在发出这样的命令...。
SET PGPASSWORD=postgres
psql -U postgres -d postgres -c "DROP USER IF EXISTS foo;"
对于对数据库运行一个简短的SQL命令,这可以正常工作。但是我遇到两个相关问题
示例1 .....
psql -U postgres -d postgres -c "CREATE DATABASE foo
WITH OWNER = bar
ENCODING = 'UTF8'
TABLESPACE = mytabspace;"
例子2 .....
psql -U postgres -d postgres -c "
ALTER TABLE one ALTER COLUMN X TYPE INTEGER;
ALTER TABLE two ALTER COLUMN Y TYPE INTEGER;"
这些都不能如所示那样工作,我已经做了一些谷歌搜索,并找到了一些关于在Linux上执行此操作的建议,并尝试了各种克拉,反斜杠和下划线,但是似乎无法将命令分成几行。
我知道-f选项可以运行文件,但是我试图避免这种情况。
有什么建议么?
批行的连续字符是^
。查看此问答
因此,请以空格+尖号结尾,^
并确保以下行以空格开头。
您还必须使用尖号转义跨越几行的双引号区域,以使其起作用。
<>|&
插入符号。psql -U postgres -d postgres -c ^“创建数据库foo ^ 有所有者=条^ 编码='UTF8'^ TABLESPACE = mytabspace;“
psql -U postgres -d postgres -c ^“ ^ 更改表一ALTER COLUMN X类型整数;^ 更改表两个ALTER COLUMN Y类型的整数;”
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句