簡體   English   中英

如何在命令行中運行內聯SQL腳本?

[英]How to run in-line SQL script in the command line?

我無法通過命令行執行SQL腳本,這就是我所擁有的

"C:\..\psql.exe" -h my_server_host -U username -c 'CREATE DATABASE test;'

我收到了這個錯誤:

psql: warning: extra command-line argument "test;'" ignored
psql: FATAL:  database "DATABASE" does not exist

我在Windows 7上使用Postgresql 9.3。

知道怎么做嗎?

即使要運行CREATE DATABASE ,也必須連接到數據庫才能運行命令,因此:

"C:\..\psql.exe" -h my_server_host -U usr -c 'CREATE DATABASE test;' postgres

(當@Craig清理完畢時 ,它必須是Windows的雙引號。)
在這里使用默認維護db postgres

還有為宗旨就在眼前,但一個更好的選擇: CREATEDB從命令行直接。

Windows的cmd.exe需要參數的雙引號,而不是單引號。

"CREATE DATABASE test;"

http://blogs.msdn.com/b/oldnewthing/archive/2010/09/17/10063629.aspx

使用以下腳本執行查詢:

@echo off
SET server=my_server_host
SET database=my_db_name
SET port=my_db_port
SET username=my_user_name
SET query="CREATE DATABASE test;"
for /f "delims=" %%a in ('chcp ^|find /c "932"') do @ SET CLIENTENCODING_JP=%%a
if "%CLIENTENCODING_JP%"=="1" SET PGCLIENTENCODING=SJIS
if "%CLIENTENCODING_JP%"=="1" SET /P PGCLIENTENCODING="Client Encoding [%PGCLIENTENCODING%]: "
REM Run psql
"C:\Program Files\PostgreSQL\9.3\bin\psql.exe" -h %server% -U %username% -d %database% -p %port%  -c %query%
pause

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM