我正在寻找在 PSQL 中执行多个命令的解决方案。
假设我有一个数据库名称为2 的文件。
1. slave1
2. slave2
Run Code Online (Sandbox Code Playgroud)
我已经有一个名为“ master_db
”的主模板。
如果我手动完成,我将执行以下操作:
CREATE DATABASE slave1 TEMPLATE master_db;
CREATE DATABASE slave2 TEMPLATE master_db;
Run Code Online (Sandbox Code Playgroud)
如果只有 2 个,那会很容易,但在我的情况下有 30 个以上,因此我想知道我们是否可以创建一个脚本。我确实尝试过搜索,但找不到解决方案。
如果这很重要,数据库在同一个集群中。
我想复制 Postgres 数据库而不使用pg_dump
. 源数据库和目标数据库都在同一台机器上(测试和生产服务器)。
我想创建master_db_copy
生产服务器的精确副本master_db
。
我从命令行尝试过:
pg_dump -vO master_db | gzip > master_db
gunzip -cV master_db.sql.gz | psql master_db_copy
Run Code Online (Sandbox Code Playgroud)
有更好/更快的方法吗?
我很难理解为什么以下查询不起作用?
select id,sold_dealer_id from myi_corporate where sold_dealer_id != 36;
当我执行以下操作时,我得到结果
select id,sold_dealer_id from myi_corporate where sold_dealer_id = 36;
然而,!=
我没有得到相反的结果。
在使用 MongoDB 很长时间后,我又回到了 psql,可能已经忘记了基础知识。任何建议都非常感激
我在试图弄清楚为什么查询需要很长时间才能执行时遇到了一些麻烦。当我检查日志时,似乎日志可能不完整。
我的问题是,什么是^M
?我account_invoice
在 Select 语句之前看到了一个相关的错误,它与问题有关吗?
我确定这个陈述是不好的,这需要很多时间,我用 Explain 做了一些研究并发现了这一点。
这是我第一次遇到这个问题,它似乎消耗了很多cpu(cpu负载超过10)。我目前重新启动 postgresql 服务器以使事情恢复工作,这确实不是我将来想要实施的解决方案。任何建议都非常感谢。
[2017-05-31 13:32:26 ICT] app=x db=y user=z command=SELECTSTATEMENT: SELECT province.name,district.name,subdistrict.name,district.icc_ship_area_code^M
FROM province,district,subdistrict,account_invoice,contact^M
WHERE province.id = province_id^M
AND district.id = subdistrict.district_id^M
database=# EXPLAIN SELECT
province.name,district.name,subdistrict.name,district.icc_ship_area_code FROM province,district,subdistrict,account_invoice,contact WHERE provi
nce.id = province_id AND district.id = subdistrict.district_id; QUERY PLAN
----------------------------------------------------------------------------------------------------
Hash Join (cost=7771211730.77..272930003461.72 rows=23422097264624 width=74)
Hash Cond: (district.province_id = province.id)
-> Hash Join (cost=35.61..301.98 rows=7426 width=55)
Hash Cond: (subdistrict.district_id = district.id)
-> Seq Scan on subdistrict (cost=0.00..164.26 rows=7426 width=27) …
Run Code Online (Sandbox Code Playgroud)