我正在设计一个 PostgreSQL 数据库,该数据库将包含有关我的用户上传的照片的信息。所有用户都将拥有至少一张主照片和可选的一张或多张公开和/或私人照片。我的第一个架构如下:
user
----
id (PK)
photo
-----
id (PK)
user_id (FK to user)
photo_id (unique identifier such as "aK1q9")
type ("main" or "other")
access ("public" or "private")
Run Code Online (Sandbox Code Playgroud)
最常运行的查询是:
SELECT p.photo_id FROM photo p INNER JOIN user u ON p.user_id = u.id WHERE p.type = 'main' AND u.id = (some user id);
Run Code Online (Sandbox Code Playgroud)
下一个最受欢迎的查询将是:
SELECT p.photo_id FROM photo p INNER JOIN user u ON p.user_id = u.id WHERE p.type = 'other' AND p.access = 'public' AND u.id = (some user …Run Code Online (Sandbox Code Playgroud) postgresql performance database-design optimization query-performance
我正在尝试使用 psql 从 Bash 脚本中强行删除 PostgreSQL 9.4.4 数据库:
#!/bin/bash
db="mydb"
psql -d $db -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '$db';"
Run Code Online (Sandbox Code Playgroud)
我正在使用此问题中显示的解决方案,但它不起作用。我看到的是这样的:
Run Code Online (Sandbox Code Playgroud)FATAL: terminating connectoin due to administrator command server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.
我究竟做错了什么?我拥有数据库并且我的用户角色具有“超级用户”属性,如我\du在 Postgres 控制台中所做的那样。