Database 使用带有[template]、[encoding]、[owner]和.sql文件的批处理文件创建Postgres数据库
我想使用批处理文件创建Postgres数据库。通常的做法如下: “C:\Program Files\PostgreSQL\9.0\bin\createdb.exe”-U Myadmin MyDatabaseName 上面的脚本使用默认数据库参数创建一个数据库。但是,我希望使用以下参数创建一个数据库,如下所示: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
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”是默认维护数据库的名称。
如果您想在批处理文件中使用它,您必须回答密码提示,或者与允许在不提供密码的情况下访问的用户连接。手册章节和章节中的基础知识。详情如下:
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