替换为 postgresql 的等效项,然后自动递增 int

发布于 2024-09-05 19:35:26 字数 525 浏览 7 评论 0原文

好吧,不严重,如果 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 INTO for MySQL 的东西。不知道是不是要自己写程序还是什么?

基本上:

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

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

Okay no seriously, if a PostgreSQL guru can help out I'm just getting started.

Basically what I want is a simple table like such:

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
);

I need something like REPLACE INTO for MySQL. I don't know if I have to write my own procedure or something?

Basically:

  • check if the query already exists
  • if so, just add 1 to the count
  • it not, add it to the db

I can do this in my php code but I'd rather all that be done in postgres C engine

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

财迷小姐 2024-09-12 19:35:26

您必须首先添加唯一约束。

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;

You have to add a unique constraint first.

ALTER TABLE schema.searches ADD UNIQUE (search_query);

The insert/replace command looks like this.

INSERT INTO schema.searches(search_query) VALUES ('a search query')
ON CONFLICT (search_query)
DO UPDATE SET search_count = schema.searches.search_count + 1;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文