当前位置:Gxlcms > 数据库问题 > pgsql操作

pgsql操作

时间:2021-07-01 10:21:17 帮助过:20人阅读

一、在 psq 中输入查询语句,用 \e 在编辑器中打开,保存到一个文件中,以后要再运行时,用 \e filename 再次打开,编辑并退出后 psql 自动运行里面的语句。 二、在同一个 tmux 窗口中打开两个 pane,一个打开 foo.sql,编辑查询语句;另一个打开 psql,运行 \e foo.sql。   11,输出内容比较   psql 中的命令默认输出到终端,但是通过 \o filename 命令可以将输出追加到 filename 上,然后再次运行 \o(不加参数),之后的命令又会恢复输出到终端中。   这个命令不适合用于导出数据,但是适合用于对输出数据进行比较:   db=# \o a.txtdb=# EXPLAIN SELECT * FROM users WHERE id IN (SELECT user_id FROM groups WHERE name = ‘admins‘);db=# \o b.txtdb=# EXPLAIN SELECT users.* FROM users LEFT JOIN groups WHERE groups.name = ‘admins‘;db=# \! vimdiff a.txt b.txt   12,克隆数据库 当在数据库上试验 migration 时,有可能会破坏原来的数据,而重建数据库会很费时 工作流程: 先创建一个克隆数据库,再在当前数据库上试验,一旦出错,删除当前数据库,从克隆数据库恢复,再重新试验。   创建克隆数据库 app_db_backup,并指定克隆的模板为 app_db:   $ createdb -T app_db app_db_backup   删除当前数据库,并恢复:   $ dropdb app_db $ createdb -T app_db_backup app_db   提取数据   假设要将数据保存为 CSV 文件。可以使用 SQL 的 COPY 命令,或者元命令 \copy。   COPY 命令   使用 COPY 命令导出数据为 CSV:   COPY (SELEC ...) TO ‘/absolute/path/export.csv‘ WITH (FORMAT csv, HEADER true);   该命令有一些限制,如只能指定绝对路径。只能保存到本地文件系统,即当你打开远程数据库时,保存的文件只能在远程服务器上。   \copy 命令   \copy (SELECT ...) TO export.csv WITH (FORMAT csv, HEADER true)   \copy 命令可以指定相对路径,甚至可以不用引号,但是语句只能写在一行中,因为元命令是通过回车触发的,而不是通过 ; 触发。   \copy 本质上调用的也是 COPY 命令,但是它将输出写到 STDOUT 上,然后 psql 再将输出重定向到本地文件中。   导出文件的默认编码是 UTF-8,但是 Excel 对其支持不好,如果要想在 Excel 使用,使用 latin1:   \copy (SELECT ...) TO export.csv WITH (FORMAT csv, HEADER true, ENCODING ‘latin1‘)   如果经常要执行这个命令,可以安装 psql2csv   使用方法:   $ psql2csv dbname "select * from table" > data.csv   $ psql2csv dbname < query.sql > data.csv   $ psql2csv --no-header --delimiter=$‘\t‘ --encoding=latin1 dbname <<sql > SELECT * > FROM some_table > WHERE some_condition > LIMIT 10 > sql   参考文献: comfortable with the command-line interface

三,php操作

1,连接数据库

$dbname = DB_NAME;

$curdate=date("Y-m-d H:i:s");

$pgsqlcon = pg_connect("host=".PG_DB_HOST." port=".DB_PG_PORT." dbname=multiopen user=".DB_PG_USER." password=".DB_PG_PASS);

2,创建表

$pgcreate = "CREATE TABLE $table ( cid serial NOT NULL, limitinfo JSONB , otherinfo JSON, PRIMARY KEY(cid)) ";

$res = pg_exec($pgcreate);

$pgindex = "CREATE index "."idx_lmt_".$curdate." on $pglogtable using gin (limitinfo)"; //创建表之后才能加索引

$res = pg_exec($pgindex);

 

pgsql操作

标签:user   索引   重建   open   触发器   ane   exp   orm   sel   

人气教程排行