我有一个查询,用于生成一些文本以创建一些 VALUES 文本以放入 .sql 文件以插入一些行。我在结果中得到一个空行:
postgres=# SELECT ' (' || obj_id || ', ''' || obj_type || '''),' FROM il2.objects WHERE obj_id < 11 ORDER BY obj_id;
?column?
-------------------------
(1, 'ScienceDomain'),
(3, 'PIs'),
(10, 'Instrument'),
(4 rows)
Run Code Online (Sandbox Code Playgroud)
执行 a select *
,很明显它是由obj_type
NULL 为obj_id
2引起的:
postgres=# SELECT * FROM il2.objects WHERE obj_id < 11;
obj_id | obj_type
--------+---------------
10 | Instrument
1 | ScienceDomain
2 |
3 | PIs
(4 rows)
Run Code Online (Sandbox Code Playgroud)
(确认它是NULL):
postgres=# SELECT * FROM il2.objects WHERE …
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据 2009 年的 SO 答案在 postgresql 中创建数据库的副本,但遇到了问题。
在 Postgres 9.3.9 中,这将创建一个没有关系的数据库(gcis 数据库存在并且具有表和数据):
postgres=# CREATE DATABASE gcis_rollback WITH TEMPLATE gcis OWNER postgres;
CREATE DATABASE
postgres=# \c gcis_rollback
You are now connected to database "gcis_rollback" as user "postgres".
gcis_rollback=# \d
No relations found.
Run Code Online (Sandbox Code Playgroud)
我使用命令行得到同样的结果createdb
:
~$ createdb -O postgres -T gcis gcis_rollback2
~$ psql gcis_rollback2
psql (9.3.9)
Type "help" for help.
gcis_rollback2=# \d
No relations found.
Run Code Online (Sandbox Code Playgroud)
为什么我看不到该数据库的完整副本?
背景- 这是一个开发服务器,我可以在其中断开连接来制作副本。我想要的只是一个本地副本,以便在使用 Perl 框架开发/测试数据库架构更改时轻松回滚我想要的只是一个本地副本,以便在使用 Perl 框架Module::Build::Database来构建补丁 …