2

好吧,不认真,如果 PostgreSQL 专家可以提供帮助,我才刚刚开始。

基本上我想要的是一个像这样的简单表格:

CREATE TABLE schema.searches
(
  search_id serial NOT NULL,
  search_query character varying(255),
  search_count integer DEFAULT 1,
  CONSTRAINT pkey_search_id PRIMARY KEY (search_id)
)
WITH (
  OIDS=FALSE
);

我需要类似REPLACE INTOMySQL 的东西。我不知道我是否必须编写自己的程序或什么?

基本上:

  • 检查查询是否已经存在
  • 如果是这样,只需将计数加 1
  • 不是,将其添加到数据库

我可以在我的 php 代码中执行此操作,但我宁愿在 postgres C 引擎中完成所有操作

4

1 回答 1

0

您必须先添加唯一约束。

ALTER TABLE schema.searches ADD UNIQUE (search_query);

插入/替换命令如下所示。

INSERT INTO schema.searches(search_query) VALUES ('a search query')
ON CONFLICT (search_query)
DO UPDATE SET search_count = schema.searches.search_count + 1;
于 2021-10-12T13:46:18.783 回答