草庐IT

PostgreSQL-psql

全部标签

postgresql - 限制 pq 连接 SetMaxOpenConns

我在go中使用pq驱动程序(http://github.com/lib/pq)写入postgres数据库,但是当大量事务同时发生时,驱动程序会出现错误并执行以下操作:pq:sorry,toomanyclientsalready为了防止这种行为,我想使用SetMaxOpenConns(如http://golang.org/pkg/database/sql/中所述),但编译器说:db.SetMaxOpenConnsundefined(type*sql.DBhasnofieldormethodSetMaxOpenConns)我认为sql中的函数也可以在pq中使用,但显然它们不是。我的代码:p

postgresql - Golang lib/pg 无法连接到 postgres

我有这样的代码:packagemainimport("database/sql""fmt""log"_"github.com/lib/pq")funcmain(){db,err:=sql.Open("postgres","user=postgresdbname=vagrantsslmode=disable")iferr!=nil{log.Fatal(err)}rows,err:=db.Query("SELECT3+5")iferr!=nil{log.Fatal(err)}fmt.Println(rows)}结果是:[vagrant@localhostgo-postgres]$gorun

postgresql - 建议的 Golang 架构,用于频繁轮询用户帐户

我正在创建一个小型服务,我经常(每5秒左右)轮询大约100个帐户(在类似Twitter的服务中)以检查新消息,因为该服务尚未提供流式API(就像Twitter实际上所做的那样)。在我的脑海中,我将架构计划为每5秒为每个用户排队一次Ticker。勾号触发后,我对该服务进行API调用,检查他们的消息,然后调用SELECT到我的Postgres数据库以获取特定用户详细信息并检查最新消息的日期,如果有是比UPDATE条目更新的消息并通知用户。重复广告恶心。我在后端事物和架构方面不是很有经验,所以我想确保这不是一个绝对荒谬的设置。对数据库的调用量是否合理?我在滥用goroutines吗?

postgresql - 使用 sql.ErrNoRows 的数据库/sql 中的示例崩溃并烧毁

我有一个使用postgresql数据库的小型Go程序。其中有一个查询不能返回任何行,我用来处理这个问题的代码无法正常工作。//Getthekarmavaluefornickfromthedatabase.funcgetKarma(nickstring,db*sql.DB)string{varkarmainterr:=db.QueryRow("SELECTSUM(delta)FROMkarmaWHEREnick=$1",nick).Scan(&karma)varkarmaStrstringswitch{caseerr==sql.ErrNoRows:karmaStr=fmt.Sprintf

postgresql - 更新 golang 中的 Jsonb 列

我正在尝试更新特定行的Jsonb列值。我运行了查询UPDATEinstruction.fileSET"details"=(jsonb_set("details",'{"UploadBy"}','"test@test.com"'::jsonb,true))WHEREid=820;这在pgAdmin3中工作正常。当我尝试在我的Go代码中执行相同操作时。我收到错误:“pq:json类型的输入语法无效”我的Go代码:funcmain(){uname:="test@test.com"err:=Init()//Dbinitiferr!=nil{fmt.Println("Error",err)ret

postgresql - Golang Postgresql 数组

如果我有一个返回如下内容的表:id:1names:{Jim,Bob,Sam}names是一个varchar数组。如何在Go中将其扫描回[]字符串?我正在使用lib/pg现在我有类似的东西rows,err:=models.Db.Query("SELECTpKey,namesFROMfoo")forrows.Next(){varpKeyintvarnames[]stringerr=rows.Scan(&pKey,&names)}我不断得到:panic:sql:Scanerroroncolumnindex1:unsupportedScan,storingdriver.Valuetype[]u

postgresql - 使用数组去 postgres `SELECT * IN`

我有一个简单的选择语句:Select*FROMXwhereX.namein("bob","joe")andX.phone='123'这在postgres中运行良好,在我的Go代码中,我有以下代码:varphonestring="123"varnames[]string=[]string{"bob","joe"}sqlStatement:=`Select*FROMXwhereX.namein($1)andX.phone=$2`rows,sqlerr:=db.Query(sqlStatement,names,phone)但出于某种原因,我从那个sql中出错了。unsupportedScan

arrays - 需要直接在 PostgreSQL 数据库中插入结构

我使用golang作为我的后端,使用postgreSQL作为我的数据库。我使用“github.com/lib/pq”驱动程序来连接我的数据库。我有一个有很多字段的结构,里面有一些JSON。我的结构看起来像这样ApplyLeave1struct{LeaveIdintEmpIdstringSupervisorEmpIdstringLeaveDaysfloat64MDaysfloat64LeaveTypestringDayTypestringLeaveFromtime.TimeLeaveTotime.TimeAppliedDatetime.TimeLeaveStatusstringResul

arrays - 使用 StructScan 将 postgresql 数组放入结构中

测试数据:CREATETABLEtest(idint,datatext[])INSERTINTOtest(id,data)VALUES(1,'{a,b,c}')去代码。第一个-一个工作正常的:funcmain(){db,_:=sqlx.Open("postgres","user=postgresdbname=testsslmode=disable")varidintvarasSlice[]stringerr:=db.QueryRowx(`SELECTid,dataFROMtestWHEREdata@>ARRAY['b']`).Scan(&id,pq.Array(&asSlice))if

postgresql - generate_series 的 Postgres 查询中的占位符返回未知

我尝试使用这样的占位符进行查询database.Query("selectlogin,displaynamefrom(selectdistinct$1+trunc(random()*$2)::integerasidfromgenerate_series($3,$4)g)rjoinusersusing(id)limit10",min_id,max_id-min_id,min_id,max_id)它抛出一个错误:pq:functiongenerate_series(unknown,unknown)isnotunique然后我找到了将查询格式化为字符串的解决方案query:=fmt.Spri