我刚刚在我的笔记本电脑上创建了一个 PostgreSQL 数据库(按照这些说明),它运行的是 Linux CentOS 7。
现在我想了解我的默认数据库的主机名地址是什么。我以为是,localhost
但不是。
我想知道要与psql -h
命令一起使用的名称或 IP 地址。基本上,运行此psql -h HOSTNAME
命令应该让我psql
单独获得与该命令相同的结果,即让我连接到我的数据库。
我的默认数据库的主机名地址是什么?
Run Code Online (Sandbox Code Playgroud)> service postgresql status
状态:
? postgresql.service - PostgreSQL 数据库服务器已加载:已加载(/usr/lib/systemd/system/postgresql.service;已启用;供应商预设:已禁用)活动:自 2017 年 3 月 30 日星期四 14:40:30 EDT 起处于活动状态(正在运行) ; 1 天 1 小时前主 PID: 2256 (postgres
而两者psql -h 127.0.0.1
并psql -h 127.0.0.1 -U davide
产生此消息:
psql:致命:用户“david”的身份验证失败`
我已经使用 Postgres 和 pgAdmin III 好几年了,但是今天早上我遇到了一个非常大的问题。我在 Windows Xp 操作系统上使用 pgAdmin III 9.0,在我的笔记本电脑 Dell Latitude E4300 上。
从今天早上开始,查询生成器(“SQL 编辑器”)选项停止工作。当我打开 pgAdmin 时,一切都很好并且可以正常工作,直到我单击 Sql Query Builder 按钮。当我这样做时,什么都没有出现并且 pgAdmin 崩溃而不提供任何信息。
我再次尝试卸载并安装 PgAdmin III 9.1,但 Sql Query Builder 一直无法正常工作。
我能做什么?
我想从基于多行 DISTINCT 的 SELECT 语句创建一个表,但 PostgreSQL 不允许我这样做。
我需要创建一个表格,其中的元素之前是从另一个表格中选择的,并且它们都是唯一的。
这是我的尝试:
CREATE TABLE new_name AS (
SELECT DISTINCT(table.field1, table.field2), table.field1, table.field2,
FROM ...
WHERE ...
);
Run Code Online (Sandbox Code Playgroud)
如果我运行这个语句,PostgreSQL 会说:
错误:列“行”具有伪类型记录
我怎么能解决这个问题?
我想找出一个 PostgreSQL 命令,它读取一个表的内容,并返回该表的主键的所有可能的耦合。
像这样的东西:
input_table(ID为主键):
- - - - - - - - - -
ID | label | name
- - - - - - - - - -
11 | aaa | Jenny
24 | bbb | Larry
35 | ccc | Trevor
48 | ddd | Jules
- - - - - - - - - -
Run Code Online (Sandbox Code Playgroud)
查询应该返回主键的所有可能的耦合:
- - - - - - - - - -
ID_left | ID_right
- - - - - - …
Run Code Online (Sandbox Code Playgroud)