草庐IT

postgreSql

全部标签

postgresql - 如何识别结果集中postgres的最后一行?

我正在使用Postgres9.5和golang库lib/pq与数据库交互。我执行一个返回多行的选择查询,然后我使用forrows.Next()进行迭代无论如何我都不能在lat记录之前停止。如果它是最后一条记录,我想在控制台上打印其他内容。类似于以下内容:forrows.Next(){varidstringerr=rows.Scan(&id)iferr!=nil{log.Printf("Errorinrows.Scan:%s\n",err)}if(rowisnotlast){fmt.Println(id+"Iamnotlast")}else{fmt.Println(id+"Iamlast

sql - 有什么简单的方法可以在事务进行到一半时提交工作,然后继续

背景我正在使用带有Postgres数据库的github.com/jmoiron/sqlxgolang包。我有以下包装函数来在事务中运行SQL代码:func(s*postgresStore)runInTransaction(ctxcontext.Context,fnfunc(*sqlx.Tx)error)error{tx,err:=s.db.Beginx()iferr!=nil{returnerr}deferfunc(){iferr!=nil{tx.Rollback()return}err=tx.Commit()}()err=fn(tx)returnerr}鉴于此,请考虑以下代码:fun

sql - 有什么简单的方法可以在事务进行到一半时提交工作,然后继续

背景我正在使用带有Postgres数据库的github.com/jmoiron/sqlxgolang包。我有以下包装函数来在事务中运行SQL代码:func(s*postgresStore)runInTransaction(ctxcontext.Context,fnfunc(*sqlx.Tx)error)error{tx,err:=s.db.Beginx()iferr!=nil{returnerr}deferfunc(){iferr!=nil{tx.Rollback()return}err=tx.Commit()}()err=fn(tx)returnerr}鉴于此,请考虑以下代码:fun

postgresql - 如何使用 Go 提取 postgres 时间戳范围?

我有一个来自postgres的tsrange类型的数据库日历。它允许我有多个约会和时间范围,例如:["2018-11-0810:00:00","2018-11-0810:45:00"]如何将此值存储在Go变量中?我试过了vartsrange[]string当我记录tsrange[0]时,它是空的。它的正确类型是什么?更多代码:rows,err:=db.Query("SELECT*FROMappointments")utils.CheckErr(err)varidintvaruserIDintvartsrange[]stringrows.Next()err=rows.Scan(&id,&

postgresql - 如何使用 Go 提取 postgres 时间戳范围?

我有一个来自postgres的tsrange类型的数据库日历。它允许我有多个约会和时间范围,例如:["2018-11-0810:00:00","2018-11-0810:45:00"]如何将此值存储在Go变量中?我试过了vartsrange[]string当我记录tsrange[0]时,它是空的。它的正确类型是什么?更多代码:rows,err:=db.Query("SELECT*FROMappointments")utils.CheckErr(err)varidintvaruserIDintvartsrange[]stringrows.Next()err=rows.Scan(&id,&

sql - 如何从 Go 中解释 PostgreSQL 错误消息?

我如何解析SQL约束错误,特别是由UNIQUE、FOREIGNKEY、NOTNULL、等约束引起的错误在Go中删除限制?例如插入可能具有相同电子邮件的新用户,该电子邮件在数据库中定义为UNIQUE字段。Go解析约束错误,返回错误给浏览器客户端。 最佳答案 有关如何解释来自github.com/lib/pq的错误的信息,请参阅http://godoc.org/github.com/lib/pq#Error.这是我的做法://ShowErrorsendsanappropriateerrormessage.funcShowError(wh

sql - 如何从 Go 中解释 PostgreSQL 错误消息?

我如何解析SQL约束错误,特别是由UNIQUE、FOREIGNKEY、NOTNULL、等约束引起的错误在Go中删除限制?例如插入可能具有相同电子邮件的新用户,该电子邮件在数据库中定义为UNIQUE字段。Go解析约束错误,返回错误给浏览器客户端。 最佳答案 有关如何解释来自github.com/lib/pq的错误的信息,请参阅http://godoc.org/github.com/lib/pq#Error.这是我的做法://ShowErrorsendsanappropriateerrormessage.funcShowError(wh

postgresql - Go SQL语法错误

这个问题在这里已经有了答案:"Operatordoesnotexist:integer=?"whenusingPostgres(1个回答)关闭7年前。我正在尝试使用database/sql向Postgres表中插入一行.我正在运行的代码看起来像...res,err:=db.Exec("INSERTINTOimage(name)VALUES(?);",fname)iferr!=nil{returnerr}...fname是一个字符串。类似于"image-name.png"。image表是由语句创建的..._,err:=db.Exec("CREATETABLEimage(idSERIAL,

postgresql - Go SQL语法错误

这个问题在这里已经有了答案:"Operatordoesnotexist:integer=?"whenusingPostgres(1个回答)关闭7年前。我正在尝试使用database/sql向Postgres表中插入一行.我正在运行的代码看起来像...res,err:=db.Exec("INSERTINTOimage(name)VALUES(?);",fname)iferr!=nil{returnerr}...fname是一个字符串。类似于"image-name.png"。image表是由语句创建的..._,err:=db.Exec("CREATETABLEimage(idSERIAL,

json - 将一对多关系检索到 JSON sql pure、Golang、Performance

假设我有以下结构,它是映射表。typePublisherstruct{IDint`db:"id"`Namestring`db:"name"`Books[]*Book}typeBookstruct{IDint`db:"id"`Namestring`db:"name"`PublisherID`db:"publisher_id"`}所以,如果我想检索所有Publisher和所有相关的Books我想得到一个像这样的JSON怎么办:[//Publisher1{"id":"10001","name":"Publisher1","books":[{"id":321,"name":"Book1"},{