Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enhance: add Save operation support for pgsql #3053 #3324

Merged
merged 8 commits into from Mar 4, 2024

Conversation

oldme-git
Copy link
Member

@oldme-git oldme-git commented Feb 24, 2024

resolved #3053

Dear reviewer:
增加对 PgSQL 的 gbd.save 支持,使用 ON CONFLICT 子句实现

变更的方法

type DB interface 新增 DoFormatUpsert

它用作替代原有 formatOnDuplicate 写死的方法,用以格式化处理不同数据库 upsert 的实现,它可以被 driver 覆盖。 比如 mysql 处理成 ON DUPLICATE KEY UPDATE ..., PgSQL 格式化成 ON CONFLICT ...

公开 gdb.coreisSoftCreatedFieldName

它用作 save 更新时忽略 created_at,以便提供给 DoFormatUpsert 使用

gbd.Model 新增 OnConflict 链式方法

部分数据库 upsert 时可能需要指定冲突键,PgSQL 中使用 ON CONFLICT(id)

备注

合并后, 需要更新文档。

@oldme-git oldme-git removed the wip label Feb 25, 2024
database/gdb/gdb_model_insert.go Outdated Show resolved Hide resolved
database/gdb/gdb.go Outdated Show resolved Hide resolved
@oldme-git oldme-git requested a review from gqcn February 28, 2024 09:49
database/gdb/gdb_core_underlying.go Outdated Show resolved Hide resolved
database/gdb/gdb.go Outdated Show resolved Hide resolved
@oldme-git oldme-git requested a review from gqcn March 1, 2024 06:34
@gqcn gqcn changed the title enhance #3053 enhance: add Save operation support for pgsql #3053 Mar 4, 2024
@gqcn gqcn merged commit 509cc47 into gogf:master Mar 4, 2024
20 checks passed
@oldme-git oldme-git deleted the enhance/#3053 branch March 6, 2024 11:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Support for upsert Semantics in save Method for PostgreSQL
2 participants