草庐IT

PostgreSQL-psql

全部标签

postgresql - 如何将参数传递给 db.exec

考虑db.Exec语句,db.Exec("INSERTINTO$1values($2,$3,to_timestamp($4),var1,var2,var3,var4)^^可以,但是如果我想做类似的事情db.Exec("INSERTINTOtable_name_$1values($2,$3,to_timestamp($4),var1,var2,var3,var4)它不起作用,$1被附加到表名而不是$1的值,我如何将它添加到查询中? 最佳答案 既然你说第一个例子有效,一个解决方案是将完整的表名作为参数传递,预先进行字符串连接:db.Ex

postgresql - 使用 gorm 在没有模型的情况下检索记录

我有一个postgre数据库和一些Goapi。下面函数的想法是检索json响应中的所有记录。只知道表名,不知道表的字段名。代码:funcindexProductHandler(whttp.ResponseWriter,r*http.Request,_httprouter.Params){setCors(w)//varproducts[]database.Productsvarresults[]map[string]interface{}database.DB.Raw("SELECT*fromproducts").Scan(&results)res,err:=json.Marshal(r

postgresql - 从特定函数创建通用函数(重构)

我正在使用createUsers填充我的假数据库的功能,仅用于测试。我正在使用pq的批量导入功能(https://godoc.org/github.com/lib/pq#hdr-Bulk_imports)。funccreateUsers(){users:=[]models.User{}fori:=0;i此代码中的所有内容都运行良好。需求:我现在需要的是让它变得“通用”,而不仅仅是用户模型。我想我需要这样的东西:DBBulkInsert(users,"users","username","age")具有功能DBBulkInsert喜欢:funcDBBulkInsert(rows[]int

sql - 是否可以在 Golang 的帮助下创建具有动态名称的 PostgreSQL 数据库?

我在后端使用Go。我尝试编写一个函数,该函数采用数据库名称并使用该名称创建PostgreSQL数据库。在这个函数之后应该在这个数据库中创建表(我已经为这个任务创建了一个sql脚本)所以主要问题是我不明白如何编写一个函数来创建PostgreSQL数据库。我想创建一个.sql文件并以某种方式将数据库名称传递给该文件(例如在.sql文件中查找字符串,它看起来像{{dbname}}并将其替换为数据库名称),但可能有一个更好的方法?这是我的.sql文件,它应该在新的PostgreSQL数据库中创建表createtable"reviews"(review_iduuidnotnullconstrai

postgresql - API 仅返回嵌套结构的最后一行

我已经构建了一个GolangRESTAPI。除了从数据库中获取所有内容的GET之外,其他HTTP动词也能正常工作。我有一个模型的嵌套结构,如下所示:typeConfigstruct{IDint`json:"id"`Namestring`json:"name,omitempty"`Data*Data`json:"data,omitempty"`}typeDatastruct{Hoststring`json:"host,omitempty"`Databasestring`json:"database,omitempty"`Passwordstring`json:"password,omit

postgresql - 如何设置隔离级别

我想将隔离级别设置为可重复读取。我如何使用postgres的gormorm实现这一点。示例代码:funcCreateAnimals(db*gorm.DB)err{tx:=db.Begin()//Notetheuseoftxasthedatabasehandleonceyouarewithinatransactioniferr:=tx.Create(&Animal{Name:"Giraffe"}).Error;err!=nil{tx.Rollback()returnerr}iferr:=tx.Create(&Animal{Name:"Lion"}).Error;err!=nil{tx.R

postgresql - 无法使用golang在postgres中使用时区更新时间戳

我在我的应用程序中使用golang和postgreSQL版本9.5.5。我使用“github.com/lib/pq”作为我的数据库驱动程序来连接到数据库。我的字段之一具有带时区的时间戳类型。我想更新到当前时间。所以我使用了以下代码:Note:Imusingbeegoasmyframeworkanduseormtocomputemyqueries._,err:=o.Raw("UPDATEleaveSETresultdate=?WHEREleaveid=?",time.Now(),leaveResult.LeaveId).Exec()当我执行此操作时,出现以下错误:"pq:invalidi

postgresql - 需要使用 golang 在 postgreSQL 中将日期增加 1 年

我在我的应用程序中使用golang和postgreSQL版本9.5.5。我正在使用github.com/lib/pq作为我的数据库驱动程序来连接到数据库。我的字段之一(重置日期)具有日期类型。我想将重置日期增加1年。所以我使用了以下代码:注意:我使用beego作为我的框架,使用orm来计算我的查询。_,err:=o.Raw("UPDATEresetdate=resetdate+interval'1year'WHEREresetdate>=?","2016-12-12").Exec()当我执行此操作时,出现以下错误:"pq:syntaxerroratornear\"=\""感谢任何帮助。

postgresql - 你如何使用golang sql在postgres中选择整个表?

我对posgres和Go还很陌生,但在这方面已经苦苦挣扎了一段时间。我目前正在尝试发送查询以从表中检索所有内容。当我尝试使用SELECT*FROMland_registry_price_paid_uk在postgres中,它显示了所有内容,但是当我使用Query执行相同操作时,我得到了。sql:expected16destinationargumentsinScan,not1这是我当前的代码。fmt.Printf("user:%s,password:%s,dbName:%s",user,password,dbName)connectionString:=fmt.Sprintf("use

postgresql - Go database/sql - 重新连接时发出命令

我有一个用Go编写的小应用程序连接到PostgreSQL另一台服务器上的数据库,利用database/sql和lib/pq。当我启动应用程序时,它会检查并确定所有数据库表和索引都存在。作为此过程的一部分,它发出SETsearch_pathTOpreferredschema,public命令。然后,对于其余的数据库访问,我不必指定模式。根据我通过调试确定的结果,当database/sql重新连接时(没有网络是完美的),应用程序开始失败,因为搜索路径不是放。有没有办法指定重新连接时应该执行的命令?我已经搜索了一个可能可以利用的事件,但到目前为止还是空的。谢谢!