小编Cra*_*ger的帖子

DELETE FROM ... 报告“.”处或附近的语法错误

我试图从数据库中仅删除一项数据,但是,当我编写命令时,我不断收到一些语法错误,您能告诉我错误在哪里吗?

这是我尝试过的命令:

DELETE FROM database_userprofile WHERE user.username = 'some';
ERROR:  syntax error at or near "."
LINE 1: DELETE FROM database_userprofile WHERE user.username = 'some'...

DELETE FROM database_userprofile USING database_user WHERE user.username="some";
ERROR:  syntax error at or near "."
LINE 1: ... database_userprofile USING database_user WHERE user.username=...
Run Code Online (Sandbox Code Playgroud)

希望你能帮我

database postgresql row delete-row sql-delete

6
推荐指数
1
解决办法
1万
查看次数

pg_resetxlog有什么作用?它是如何工作的?

我查看了postgres文档,下面给出了概要:

pg_resetxlog [-f] [-n] [-ooid ] [-x xid ] [-e xid_epoch ] [-m mxid ] [-O mxoff ] [-l timelineid,fileid,seg ] datadir
Run Code Online (Sandbox Code Playgroud)

但是在文档中没有任何地方可以解释数据的含义.是它%postgres-path%/9.0/data还是可能%postgres-path%/9.0/data/pgxlog

另外,如果我想更改我的xlog目录,我可以简单地移动当前pg_xlog目录中的项目并运行命令指向另一个目录吗?(假设我现在的pg_xlog里面的目录是在/data1/postgres/data/pg_xlog和目录我想要的日志,去的是:/data2/pg_xlog)

以下命令会实现我刚才描述的吗?

mv /data1/postgres/data/pg_xlog /data2/pg_xlog
pg_resetxlog /data2
Run Code Online (Sandbox Code Playgroud)

postgresql pg

5
推荐指数
2
解决办法
2万
查看次数

更快地搜索字段的第1个字符与[A-Za-z]不匹配的记录?

我目前有以下内容:

User (id, fname, lname, deleted_at, guest)
Run Code Online (Sandbox Code Playgroud)

我可以通过它们的fname初始查询用户列表,如下所示:

User Load (9.6ms)  SELECT "users".* FROM "users" WHERE (users.deleted_at IS NULL) AND (lower(left(fname, 1)) = 's') ORDER BY fname ASC LIMIT 25 OFFSET 0
Run Code Online (Sandbox Code Playgroud)

由于以下索引,这很快:

  CREATE INDEX users_multi_idx
  ON users (lower(left(fname, 1)), fname)
  WHERE deleted_at IS NULL;
Run Code Online (Sandbox Code Playgroud)

我现在想要做的是能够查询所有不以字母AZ开头的用户.我这样做是这样的:

SELECT "users".* FROM "users" WHERE (users.deleted_at IS NULL) AND (lower(left(fname, 1)) ~ E'^[^a-zA-Z].*') ORDER BY fname ASC LIMIT 25 OFFSET 0
Run Code Online (Sandbox Code Playgroud)

但问题是这个查询非常慢并且似乎没有使用索引来加速第一个查询.关于如何优雅地使第二个查询(非az)更快的任何建议?

我正在使用带有rails 3.2的Postgres 9.1

谢谢

postgresql ruby-on-rails ruby-on-rails-3 postgresql-performance

5
推荐指数
1
解决办法
225
查看次数

创建最近查看的列表,MySQL 或 Redis

我有一个网站,用户可以在其中浏览搜索结果。记住用户查看过哪些结果并将其标记为 会很有用Viewed

问题:要实现这样的Recently Viewed列表功能,推荐的方法是什么?

  1. 使用像 MySQL 这样的 RDBMS。每次用户单击链接时,都会向服务器发出 AJAX 调用,以将新行插入views包含列iduser_iditem_id、的表中timestamp。在显示任何搜索结果之前,每个项目都将id根据表格views进行检查,以确定该列表是否会被标记为viewed(如果这有帮助,我的 PHP 框架 Laravel 可以使用数据库或 redis 作为会话驱动程序,而不是使用 cookie)

  2. 使用像 Redis 这样的内存数据存储。我没有redis/memcached的经验,之所以想到用这个,是因为对viewed表的写入量很大,而读取主要是按主键选择的(Redis里有索引的概念吗?)

感谢您的任何建议和意见,尤其是那些对这两种技术有经验的人。

php mysql memcached redis

5
推荐指数
1
解决办法
2397
查看次数

在PL/PgSQL EXECUTE动态查询中正确插入文字

以下是plpgsql函数的一部分.问题是,结果source_geomtarget_geomcharacter varying数据类型,因此我需要两个环绕source_geom,并target_geom在引号("").问题是在plpgsql语言中我怎么不知道我能做到.
这就是我现在所拥有的:

 EXECUTE 'update ' || quote_ident(geom_table) || 
        ' SET source = ' || source_geom || 
        ', target = ' || target_geom ||
        ' WHERE ' || quote_ident(gid_cname) || ' =  ' || _r.id;
Run Code Online (Sandbox Code Playgroud)

我遇到的错误如下:

ERROR:  syntax error at or near "C03B9E3B66052D400DDEFC2BD0F24140"
LINE 1: ...pdate track_points SET source = 0101000020E6100000C03B9E3B66...
                                                             ^
QUERY:  update track_points SET source = 0101000020E6100000C03B9E3B66052D400DDEFC2BD0F24140, target = 0101000020E610000075690DEF83052D40F88E75CCD4F24140 WHERE ogc_fid =  2
CONTEXT:  PL/pgSQL function "create_network" …
Run Code Online (Sandbox Code Playgroud)

sql postgresql dynamic-sql plpgsql

5
推荐指数
2
解决办法
7651
查看次数

Postgres:按日期时间优化查询

我有一个日期时间字段为"updated_at"的表.我的很多查询都会使用范围查询来查询此字段,例如update_at>某个日期的行.

我已经为updated_at添加了一个索引,但是我的大多数查询仍然非常慢,即使我对返回的行数有限制.

我还可以做些什么来优化查询日期时间字段的查询?

sql postgresql performance postgresql-performance

5
推荐指数
2
解决办法
7119
查看次数

Loopback模型定义不在数据库表中添加外键关系

我正在使用环回来进行API设计和数据建模.我使用MySQL作为我的数据库.虽然我的API rest URL成功返回结果,例如/states/{id}/cities.我有以下模型,但似乎没有添加外键关系.以下是我的模型定义.

"state": {
  "options": {
    "relations": {
      "cities": {
        "type": "hasMany",
        "model": "city",
        "foreignKey": "stateId"
      }
    }
  },
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "public": true,
  "dataSource": "db",
  "plural": "states"
},
"city": {
  "options": {
    "relations": {
      "state": {
        "type": "belongsTo",
        "model": "state",
        "foreignKey": "stateId"
      }
    }
  },
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "public": true,
  "dataSource": "db",
  "plural": "cities"
}
Run Code Online (Sandbox Code Playgroud)

以下是城市表的截图. 在此输入图像描述

以下是状态表截图. 在此输入图像描述

我可能在这里做错了.期待任何指针.

loopbackjs

5
推荐指数
1
解决办法
3601
查看次数

使用自制程序安装 PostgreSQL 时出错

我正在使用 Mac OS X 10.8.5 并尝试使用自制软件安装 postgreSQL。我修复了运行brew info postgresql 时发生的几个错误和警告。但是,我不知道如何解决其余问题。

\n\n

$brew 信息 postgresql

\n\n
postgresql: stable 9.3.2 (bottled)\nhttp://www.postgresql.org/\nConflicts with: postgres-xc\n/usr/local/Cellar/postgresql/9.3.2 (2924 files, 40M) *\n  Poured from bottle\nFrom: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/postgresql.rb\n==> Dependencies\nRequired: readline \xe2\x9c\x94\nRecommended: ossp-uuid \xe2\x9c\x94\n==> Options\n--32-bit\n    Build 32-bit only\n--enable-dtrace\n    Build with DTrace support\n--no-perl\n    Build without Perl support\n--no-tcl\n    Build without Tcl support\n--without-ossp-uuid\n    Build without ossp-uuid support\n--without-python\n    Build without python support\n==> Caveats\nIf builds of PostgreSQL 9 are failing and you have version 8.x installed,\nyou may need to remove the previous version first. See:\n …
Run Code Online (Sandbox Code Playgroud)

postgresql macos homebrew

5
推荐指数
1
解决办法
1万
查看次数

重新启动 PostgreSQL 后,我的所有表都为空(零行)

使用 Mac OS X 10.10 (Yosemite) 和 Homebrew (0.9.5),我安装了 PostgreSQL 9.4.1。截至本文发布时,基本上所有当前版本...

我已经成功地导入了一个非常大的数据库(5600 万条记录 - 导入需要 15 个小时),并编写了一个应用程序以在本地使用它。我找到了一个应用程序 pgAdmin3,它可以让我使用 GUI 执行各种管理任务。一切都很好。

每次我重新启动计算机时,一次是由于 USB 火线音频接口的内核崩溃,一次是由于电源故障,两次是由于用户启动的重新启动 - 每次重新启动后,数据库都是空的。数据库用户/角色仍然存在,表和关系也存在,但是,所有表都是空的。0 条记录。没有。pgAdmin3 甚至显示该表已为数百万条记录分配了空间,其计数为“未定义”。刷新计数,显示 0 条记录。浏览数据显示 0 条记录。我的 Mac 应用程序(使用 libpq)成功连接到数据库,并从其任何/所有 SELECT 语句中获得 0 结果。提到每次重新导入数据库需要 15 个小时是多余的吗?(反问)

任何和所有建议表示赞赏。

Mac OS X 10.0.2 (Yosemite) Homebrew 0.9.5 PostgreSQL 9.4.1 on x86_64-apple-darwin14.1.0,由 Apple LLVM 6.0 版 (clang-600.0.56) 编译(基于 LLVM 3.5svn),64 位

database postgresql macos

5
推荐指数
2
解决办法
3540
查看次数

为新类型扩展 kustomize 图像转换器

有没有办法扩展 kustomize 图像转换器以将更多键识别为图像说明符?就像nameReference变压器namePrefixnameSuffix变压器所做的那样。

Kustomizeimages:转换器对于 k8s 清单中的图像替换和注册表重命名非常有用。

它只支持嵌入的类型PodTemplate,也许还有一些硬编码的类型。不使用的 CRDPodTemplate不会被处理,尽管它们常见。示例包括kube-prometheus PrometheusAlertManager资源以及opentelemetry-operator OpenTelemetryCollector资源。

因此,您必须维护一堆混乱的战略合并或 json 补丁,以使用受信任的注册表等为此类图像添加前缀。


这是目前问题的一个例子。假设我必须部署以mytrusted.registry变压器images:列表为前缀的所有内容。为了简洁起见,我将使用一个虚拟图像来替换所有匹配的图像MATCHED,因此我不必将它们全部列出:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - "https://github.com/prometheus-operator/kube-prometheus"
images:
  - name: "(.*)"
    newName: "MATCHED"
    newTag: "fake"
Run Code Online (Sandbox Code Playgroud)

您可能期望结果中唯一的图像是“MATCHED:fake”,但实际上:

$ kustomize build  | grep 'image: .*' | sort | uniq -c
     12         image: MATCHED:fake
      1   image: quay.io/prometheus/alertmanager:v0.24.0
      1   image: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kustomize

5
推荐指数
1
解决办法
2890
查看次数