在pgAdmin的窗口中,直接打开SQL文件然后执行就可以了。
你所说的Oracle的执行方式,应该是在sql plus命令窗口中执行sql文件。这个功能在PostgreSQL的命令窗口psql中也有此功能:开启psql命令窗口之后,执行命令:
\i?sqlfile_path就可以执行指定的sql文件了, 其中sqlfile_path是要执行的sql文件, 如下图,
要注意的是: 在Windows系统中,路径中用的是斜杠,不是反斜杠。
SELECT
procpid,
start,
now() - start AS lap,
current_query
FROM
(SELECT
backendid,
pg_stat_get_backend_pid(S.backendid) AS procpid,
pg_stat_get_backend_activity_start(S.backendid) AS start,
pg_stat_get_backend_activity(S.backendid) AS current_query
FROM
(SELECT pg_stat_get_backend_idset() AS backendid) AS S
) AS S
WHERE
current_query <> '<IDLE>'
ORDER BY
lap DESC;
procpid:进程id
start:进程开始时间
lap:经过时间
current_query:执行中的sql
怎样停止正在执行的sql
SELECT pg_cancel_backend(进程id);
或者用系统函数
kill -9 进程id;
原理:
使用"c:\program files\postgresql\9.0\bin\psql.exe"来建立到postgresql数据库的连接后执行sql语句。
(建立数据库连接的方法,可以参考c:\program files\postgresql\9.0\scripts\runpsql.bat文件。)
一,执行sql语句
set db_name=temp
"c:\program files\postgresql\9.0\bin\psql.exe" -h localhost -u postgres -d %db_name% -p 5432 -w -c "select * from table1;"
二,执行sql脚本文件
在sql语句比较复杂时,可以先把sql语句保存到文件中,然后用psql.exe执行该文件。
@rem move to the current file's directory
%~d0
cd %~dp0
@rem excute a sql script file to create database
"c:\program files\postgresql\9.0\bin\psql.exe" -h localhost -u postgres -d postgres -p 5432 -w -f resource/db/createdb.sql
如果有多个sql脚本文件(如:a.sql, b.sql, c.sql),可以新建一个sql脚本文件(index.sql)来调用这多个脚本文件,这样在bat中只需要一个命令语句,而不需要多次复制相似的命令。新建index.sql文件的内容可以是:
\i resource/db/createdb.sql
\i resource/db/createsp.sql
\i resource/db/insertdata.sql
备注:
在cmd窗口中输入 "c:\program files\postgresql\9.0\bin\psql.exe" -? 可以查找psql的相关命令。
建立了数据库连接后,可以用help命令,或者\? 查找sql命令。
那得看PostgreSQl主程序支持不支持命令行了
是否可以解决您的问题?
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....