使用包含 [模板]、[编码]、[所有者] 的批处理文件和 .sql 文件创建 Postgres 数据库
我想使用批处理文件创建 Postgres 数据库。现在,执行此操作的正常方法如下:
"C:\Program Files\PostgreSQL\9.0\bin\createdb.exe" -U Myadmin MydatAbseName
上面的脚本使用默认数据库参数创建一个数据库。但是,我想创建一个具有以下参数的数据库,如下所示:
WITH OWNER = Myadmin
TEMPLATE = template0
ENCODING = 'SQL_ASCII'
TABLESPACE = pg_default
LC_COLLATE = 'C'
LC_CTYPE = 'C'
CONNECTION LIMIT = -1;
请告诉我如何使用批处理文件创建具有上述参数的数据库。
另请让我知道如何使用 .sql 文件来执行相同的操作,如以下命令行:
"C:\Program Files\PostgreSQL\9.0\bin\createdb.exe" -U Myadmin -f C:\createDB.sql;
I want to create a Postgres database using a batch file. Now the normal way of doing this is the following:
"C:\Program Files\PostgreSQL\9.0\bin\createdb.exe" -U Myadmin MydatAbseName
This script above creates a database with the default database parameters. However, I want to create a database with the following parameters, as follows:
WITH OWNER = Myadmin
TEMPLATE = template0
ENCODING = 'SQL_ASCII'
TABLESPACE = pg_default
LC_COLLATE = 'C'
LC_CTYPE = 'C'
CONNECTION LIMIT = -1;
Please tell me how to create a database with the above parameters using Batch files.
Also let me know how to use a .sql file to do the same, like this command-line:
"C:\Program Files\PostgreSQL\9.0\bin\createdb.exe" -U Myadmin -f C:\createDB.sql;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
客户端程序
createdb
不支持所有这些选项。创建一个文件
db_create.sql
:调用它:
这里的技巧是连接到默认维护数据库“postgres”并从那里创建新数据库。在我的示例中,我使用名为“postgres”的默认超级用户来执行此操作。
psql -f
执行给定文件中的 SQL 命令。您也可以仅使用
psql -c
执行单个命令(不涉及文件):有关创建数据库的更多信息,请参阅精美手册 此处 和 这里。
有关 psql 的更多信息。
在 Windows 上,它看起来像这样:
最后一个“postgres”是默认维护数据库的名称。
如果您想在批处理文件中使用它,您必须回答密码提示或与允许访问的用户连接而无需提供密码。 密码文件 和 手册的 pg_hba.conf 文件。更多信息请参见:
The client program
createdb
does not support all those options.Create a file
db_create.sql
:Call it:
The trick here is to connect to the default maintenance db "postgres" and create the new database from there. I do it with the default superuser named "postgres" in my example.
psql -f
executes the SQL commands in the given file.You could also just execute a single command with
psql -c
(no file involved):More on creating a database in the fine manual here and here.
More on psql.
On Windows, it looks something like this:
The last "postgres" is the name of the default maintenance db.
If you want to use it in a batch file you have to answer a password prompt or connect with a user that is allowed access without providing a password. Basics in chapters The Password File and The pg_hba.conf File of the manual. More here: