我有一个名为:nyummy的数据库模式和一个名为cimory的表:
create table nyummy.cimory (
id numeric(10,0) not null,
name character varying(60) not null,
city character varying(50) not null,
CONSTRAINT cimory_pkey PRIMARY KEY (id)
);
我想将cimory表的数据导出为插入SQL脚本文件。但是,我只想导出城市等于“tokyo”的记录/数据(假设城市数据都是小写的)。
怎么做呢?
解决方案是使用免费的GUI工具还是命令行并不重要(尽管GUI工具解决方案更好)。我尝试过pgAdmin III,但我找不到这样做的选项。
我需要一种不需要创建临时表(在生产环境中)就可以生成插入语句的方法。我确实看到了上面的pg_dump的一些有用的参数,但最终还是设计了一种方法
生成插入语句并转储到文件中
下面的陈述很有用,我觉得对那些在这里找到类似答案的人会很有用。
$ /usr/local/bin/pg_dump -h the_db_host_address -d the_db_name --table=schema_name.table_name --data-only --column-inserts -U postgres -p the_port_number -v -f /Users/the_user/folder_name/insrt_stmts_file_name.sql
下一件事是一个提示,要求密码,在上面的情况下,我提供了postgres密码,但任何其他用户应该工作良好,具有读取能力。
我运行了文件中的插入语句:
insrt_stmts_file_name。在DBeaver客户端执行sql命令。
但同样可以从命令提示符运行,使用以下脚本:
/usr/local/bin/psql -h the_db_host_address -d the_db_name -v -U postgres -f /Users/the_user/folder_name/insrt_stmts_file_name.sql
pg_dump / psql标志的引用:
-h = host
-d = db name
-v = verbose(它会随着进程输出)
-U = db用户名
-f =文件/路径