-你在做什么?

create table if not exists T
(
    A bigint,
    B bigint,
    C bigint generated always as (A + B) stored
);

型号:

type T struct {
    A int64
    B int64
    C int64
}

当我try 插入此 struct 时,我得到错误ERROR: cannot insert into column "C" (SQLSTATE 42601).

如果我将C字段标记为gorm:"-",那么我在阅读时不会获得该字段的值.有没有一种方法可以不创建两个 struct (一个用于写作,另一个用于阅读),而是创建一个 struct ?

推荐答案

您可以使用field level permissions:

`gorm:"<-:false"`  // allow read, disable write permission

Postgresql相关问答推荐

无法在PostgreSQL中创建方案和表

Postgres:如何优化在多个表上搜索列的相似性查询?(Pg_Trgm)

Docker化的PostgreSQL:FATAL:用户&postgres的密码身份验证失败

为什么我的应用程序接收的是空值而不是布尔值?

如何获得一起满足数量要求的物品? (WHILE 循环还是 CTE?)postgresql

如何在 postgres 中查询键设置为空值的 jsonb 字段

使用 GDB 调试器调试 AGE 代码的过程

是否可以短时间运行 VACUUM FULL 并获得一些好处?

用于生产的 Rails 性能调优?

Spring:如何在 PostgreSQL 中使用 KeyHolder

新数据未保存到 Postgres 上的 Rails 数组列

PostgreSQL ORDER BY 问题 - 自然排序

?(问号)运算符在 Rails 中查询 Postgresql JSONB 类型

如何防止用户看到其他数据库和其他数据库中的表?

PostgreSQL:使用 psql 命令行实用程序时 Windows 上的编码问题

无法安装 psycopg2 Ubuntu

SQL:列为某个值时的唯一约束

在 PostgreSQL 中将列数据类型从 Text 更改为 Integer

如何将 PostgreSQL 查询输出导出到 csv 文件

如何使用 postgresql 按计数排序?