PostgreSQL:在命令行中使用psql运行SQL命令

时间:2019-03-19 13:42:09

标签: postgresql

我要使用psql在命令行中运行以下三行代码。

CREATE DATABASE myproject;
CREATE USER myprojectuser WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;

我只想按原样传递sql字符串。

2 个答案:

答案 0 :(得分:1)

按照docs psql -c 'command;'

psql -c 'CREATE DATABASE myproject;' -c "CREATE USER myprojectuser WITH PASSWORD 'password';" -c 'GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;'

答案 1 :(得分:0)

如@horse建议的那样,-f filename是一个更好的选择。您也可以使用here文档将它们放入变量中,并使用-c选项执行它。

read -r -d '' my_sqls << EOM
CREATE DATABASE myproject;
CREATE USER myprojectuser WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
EOM
psql -c "$my_sqls"   # running all  the lines.