草庐IT

postgresql主从

全部标签

postgresql - 使用 SQLX 转到可选字段

我正在学习Go并尝试创建一个具有“字段”参数的API端点。当我尝试将sqlx结果行扫描到结构中时,但是用户省略的字段将作为空字符串返回。有没有办法可以更改结构以仅反射(reflect)用户传递的字段?我不认为我想使用omitempty以防例如user_name是一个空字符串。typeUserstruct{Idint`db:"id"`UserNamestring`db:"user_name"`}funcGetUsers(whttp.ResponseWriter,r*http.Request,db*sqlx.DB){acceptedFields:=map[string]bool{"id":

postgresql - 使用 SQLX 转到可选字段

我正在学习Go并尝试创建一个具有“字段”参数的API端点。当我尝试将sqlx结果行扫描到结构中时,但是用户省略的字段将作为空字符串返回。有没有办法可以更改结构以仅反射(reflect)用户传递的字段?我不认为我想使用omitempty以防例如user_name是一个空字符串。typeUserstruct{Idint`db:"id"`UserNamestring`db:"user_name"`}funcGetUsers(whttp.ResponseWriter,r*http.Request,db*sqlx.DB){acceptedFields:=map[string]bool{"id":

postgresql - 使用 gorm 更新 postgres 表

我在尝试更新表格中的行时遇到问题。我尝试了以下方法:returnss.db.Where("name=?",sub.Name).Save(&sub).Error和returnss.db.Save(sub).Error我也试过这个的变体s:=ss.db.Where("Name=?",sub.Name)returnss.db.Model(&s).Updates(Subscription{Name:sub.Name,DevicesAllowed:sub.DevicesAllowed,Price:sub.Price,Active:sub.Active}).Error我还尝试了其他几种没有奏效的方

postgresql - 使用 gorm 更新 postgres 表

我在尝试更新表格中的行时遇到问题。我尝试了以下方法:returnss.db.Where("name=?",sub.Name).Save(&sub).Error和returnss.db.Save(sub).Error我也试过这个的变体s:=ss.db.Where("Name=?",sub.Name)returnss.db.Model(&s).Updates(Subscription{Name:sub.Name,DevicesAllowed:sub.DevicesAllowed,Price:sub.Price,Active:sub.Active}).Error我还尝试了其他几种没有奏效的方

postgresql - Golang SQL封装jsonb算子

在postgresqljsonb的sql包中,我如何使用@>运算符进行字符串查询,例如WHEREdata@>'{"stringdata":$1}'或WHEREdata@>'{"stringdata":"$1"}'不起作用替代方案是data->>'string_data'=$1我不喜欢用于多个语句错误是:"Message":"invalidinputsyntaxfortypejson","Detail":"Token\"$\"isinvalid.”,"Where":"JSONdata,line1:$...","Routine":"report_invalid_token"

postgresql - Golang SQL封装jsonb算子

在postgresqljsonb的sql包中,我如何使用@>运算符进行字符串查询,例如WHEREdata@>'{"stringdata":$1}'或WHEREdata@>'{"stringdata":"$1"}'不起作用替代方案是data->>'string_data'=$1我不喜欢用于多个语句错误是:"Message":"invalidinputsyntaxfortypejson","Detail":"Token\"$\"isinvalid.”,"Where":"JSONdata,line1:$...","Routine":"report_invalid_token"

postgresql - `gorm` 忽略 `sql:"索引 "` 标签

为什么gorm忽略sql:"index"标签?没有创建索引。这里使用的数据库是PostgreSQL(导入_"github.com/lib/pq")。使用此Model结构(因为默认gorm.Model使用自动递增数字-serial-作为主键,我想设置id我自己):typeModelstruct{IDint64`sql:"type:bigintPRIMARYKEY;default:0"`CreatedAttime.TimeUpdatedAttime.TimeDeletedAt*time.Time`sql:"index"`}其中一个实际模型是:typeTUHistorystruct{Mode

postgresql - `gorm` 忽略 `sql:"索引 "` 标签

为什么gorm忽略sql:"index"标签?没有创建索引。这里使用的数据库是PostgreSQL(导入_"github.com/lib/pq")。使用此Model结构(因为默认gorm.Model使用自动递增数字-serial-作为主键,我想设置id我自己):typeModelstruct{IDint64`sql:"type:bigintPRIMARYKEY;default:0"`CreatedAttime.TimeUpdatedAttime.TimeDeletedAt*time.Time`sql:"index"`}其中一个实际模型是:typeTUHistorystruct{Mode

Postgresql创建用户与数据库并赋予权限

1、使用postgres登录pgsqlsudo-upostgrespsqlpostgres-p54322、添加名为iuser的用户,并设置密码createuseriuserwithpassword'123123';3、给iuser用户,创建数据库叫work_basecreatedatabasework_baseowneriuser;4、授予iuser当前work_base的全部权限4.1、 先退出postgre数据库exit4.2、登录work_base数据库psql-Upostgres-dwork_base-p54324.3、将work_base的所有权限赋予iusergrantallpri

postgresql - 为多对多关系构建 go-pg ORM 查询

我有3个表来表示我的多对多关系。客户,公司,公司_客户。companies:-id-namecustomers:-id-usernamecompanies_customers:-id-customer_id-company_id现在我要运行的查询是选择company_id为1的所有客户。原始SQL查询可能/可能看起来像这样:SELECT*FROMcustomerscINNERJOINcustomers_companiesccONc.id=cc.customer_idWHEREcc.company_id=1我试过在go-pg中做这样的事情:varcustomers[]*Customers