Database 使用带有[template]、[encoding]、[owner]和.sql文件的批处理文件创建Postgres数据库

Database 使用带有[template]、[encoding]、[owner]和.sql文件的批处理文件创建Postgres数据库,database,postgresql,batch-file,database-connection,ddl,Database,Postgresql,Batch File,Database Connection,Ddl,我想使用批处理文件创建Postgres数据库。通常的做法如下: “C:\Program Files\PostgreSQL\9.0\bin\createdb.exe”-U Myadmin MyDatabaseName 上面的脚本使用默认数据库参数创建一个数据库。但是,我希望使用以下参数创建一个数据库,如下所示: WITH OWNER = Myadmin TEMPLATE = template0 ENCODING = 'SQL_ASCII' TABLESPACE = pg

我想使用批处理文件创建Postgres数据库。通常的做法如下:

“C:\Program Files\PostgreSQL\9.0\bin\createdb.exe”-U Myadmin MyDatabaseName

上面的脚本使用默认数据库参数创建一个数据库。但是,我希望使用以下参数创建一个数据库,如下所示:

   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;

客户端程序
createdb
不支持所有这些选项。
创建一个文件
db\u Create.sql

CREATE DATABASE MydatAbseName
   WITH OWNER myadmin 
   TEMPLATE template0
   ENCODING 'SQL_ASCII'
   TABLESPACE  pg_default
   LC_COLLATE  'C'
   LC_CTYPE  'C'
   CONNECTION LIMIT  -1;
叫它:

psql -U postgres postgres -f C:/path/to/db_create.sql
这里的技巧是连接到默认维护数据库“postgres”并从那里创建新数据库。在我的示例中,我使用名为“postgres”的默认超级用户执行此操作。
psql-f
执行给定文件中的SQL命令

您也可以使用
psql-c
执行单个命令(不涉及任何文件):

有关在fine手册和中创建数据库的详细信息。
更多关于


在Windows上,它看起来像这样:

"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres
最后一个“postgres”是默认维护数据库的名称。 如果您想在批处理文件中使用它,您必须回答密码提示,或者与允许在不提供密码的情况下访问的用户连接。手册章节和章节中的基础知识。详情如下:


您好,我尝试了这两种方法,但不知怎么的,我无法让它们工作,对于第一种方法,我收到消息说C:\>“C:\Program Files\PostgreSQL\9.0\bin\psql.exe”psql-u nansis\u admin-f'C:\createDB.sql'psql:warning:extra-command-line参数“nansis\u-admin”忽略了psql:warning:extra-command-line参数“--f”忽略psql:警告:额外的命令行参数“'C:\createDB.sql'”忽略了用户的密码-u:输入密码后,未创建任何数据库。my.sql文件包含以下内容:\ uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu-1; __________________________________________-- 对于第二种方法,正在创建no数据库,请帮助,感谢您的快速回复:)@PresleyDias:you have
psql
两次在您的命令中。尝试:
“C:\ProgramFiles\PostgreSQL\9.0\bin\psql.exe”postgres-U nansis\U admin-f'C:\createDB.sql'
。仅当用户
nansis_admin
具有所需权限时才有效。嘿,我的坏:)但我尝试了这个“C:\Program Files\PostgreSQL\9.0\bin\psql.exe”postgres-U nansis_admin-f'C:\createDB.sql”,但在执行bat文件C:\>“C:\Program Files\PostgreSQL\9.0\bin\psql.exe”时仍然会出现消息postgres-U nansis_admin-f'C:\createDB.sql'psql:warning:extra命令行参数“nansis_admin”忽略psql:warning:extra命令行参数“-f”忽略psql:warning:extra命令行参数“'C:\createDB.sql'”忽略用户的密码-U:nansis_admin是superuser@PresleyDias例如我在回答中又加了一些。
"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres