草庐IT

PostgreSQL-psql

全部标签

postgresql - 如何为 go-pg 中的每个查询动态设置表名?

我有一堆类似的临时表,我正在尝试使用go-pg查询它们的ORM。我找不到在选择期间动态更改查询表的方法:import"gopkg.in/pg.v4"typeMyModelstruct{TableNamestruct{}`sql:"temp_table1"`Idint64Namestring}varmymodels[]MyModelerr:=db.Model(&mymodels).Column("mymodel.id","mymodel.name").Select()这将查询在模型的TableName中定义的temp_table1。有没有办法将表名作为参数传递,以便我可以查询temp_t

postgresql - 为什么这个 sqlx 的 copyin 语句挂了?

我编写了一个玩具应用程序来试验通过sqlx使用Postgresql。我使用进行了批量插入pq.CopyIn作为准备好的语句的内容stmt,_:=tx.Preparex(pq.CopyIn(tablename,column,column,...)然后我将继续向正在创建的批量插入添加行。tx.Exec(...,...,...)然后最后执行preparedstatementstmt.Exec()这之前工作得很好,但现在我回到它并尝试执行这段代码,它卡在stmt.Exec我是不是在我的代码中遗漏了某些东西,还是这一切都与数据库引擎有关,没有响应。这是我的完整代码。packagemainimpo

postgresql - Postgres 中的每个事务是否可能有多个连接? Golang 用法

我需要在单个事务范围内使用多个连接同时填充Postgres中的表。可能吗?我看不出有什么办法可以避免这个瓶颈。谢谢 最佳答案 我相信交易不需要。但如果非常想-您可以制作一个暂存表,用几个例程填充它,然后在事务中通过使用这样的“从选择插入”来批量传输数据 关于postgresql-Postgres中的每个事务是否可能有多个连接?Golang用法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

postgresql - 创建新结构并将其附加到一对多关系中的数组

我正在尝试以一对多关系将新项目附加到数组。问题是其中一个ID始终未定义,并且我要附加到的模型没有得到更新。我有以下模型:typeStationstruct{gorm.ModelNamestringMeasurements[]MeasurementPlantIDuint64PlantPlant}typeMeasurementstruct{IDuint64`gorm:"primary_key"`StationIDuint64TempSensorfloat32LightSensorfloat32HumiditySensorfloat32CreatedAttime.Time}typePlant

postgresql - 如何避免 0(零)int 变成 Postgres "null"值并违反 "not null"约束?

在Go中,我将JSON解码/解码为一个ID字段类型为int的结构。然后我尝试使用go-pg将这个结构插入到PostgreSQL数据库中,并将ID列作为主键(具有非空约束)。第一个条目的ID为0。在Postgres文档中,它指出0可以作为主键的值。但是,我不断收到错误消息:"ERROR#23502nullvalueincolumn"number"violatesnot-nullconstraint".看起来0在被解码为int值时变成了Go的“零值”。然后它作为null值插入到Postgres中。任何有关我如何避免这种情况的提示都将不胜感激。typeAccountstruct{Number

postgresql - docker postgres pgadmin 本地连​​接

我已经用nginx、php和postgres创建了一个ubuntu镜像。我想将我当前镜像中的postgres数据库与位于我本地计算机上的pgadmin连接起来。我曾尝试使用dockerinspector尝试使用图像ip与我的本地pgadmin建立连接,但没有多大成功。我还尝试在本地配置一些端口以使连接正常工作。 最佳答案 这是一个有效的问题,不知道为什么人们会觉得“似乎无法回答这个问题”。所以,这就是我如何做你想做的事情:从DockerHub拉取postgres镜像dockerpullpostgres:latest使用以下命令运行容

postgresql - docker postgres pgadmin 本地连​​接

我已经用nginx、php和postgres创建了一个ubuntu镜像。我想将我当前镜像中的postgres数据库与位于我本地计算机上的pgadmin连接起来。我曾尝试使用dockerinspector尝试使用图像ip与我的本地pgadmin建立连接,但没有多大成功。我还尝试在本地配置一些端口以使连接正常工作。 最佳答案 这是一个有效的问题,不知道为什么人们会觉得“似乎无法回答这个问题”。所以,这就是我如何做你想做的事情:从DockerHub拉取postgres镜像dockerpullpostgres:latest使用以下命令运行容

postgresql - 无法连接到 docker 容器内的 postgresql

我正在编写一个go应用程序,它在2个容器中进行了dockerized:db和app。启动容器“docker-composeup”时,我看到消息:dialtcp:lookupdbpgsqlon127.0.0.11:53:nosuchhostDB_ENV_DB=cldbDB_ENV_USER=cldbDB_ENV_PASS=cldbDB_PORT_5432_TCP_ADDR=dbpgsqlDB_PORT_5432_TCP_PORT=5432这是我的docker-compose.ymlversion:'2'services:server:hostname:appimage:golang:1.

postgresql - 如何防止 PostgreSQL JSON/JSONB 字段中的 SQL 注入(inject)?

HowcanIpreventSQLinjectionattacksinGowhileusing"database/sql"?这解决了单值字段问题,因为您可以删除引号,但我无法过滤JSON/JSONB字段,如下所示,因为$1被视为字符串:`SELECT*FROMfooWHEREbar@>'{"baz":"$1"}'`以下是可行的,但它容易出现SQL注入(inject):`SELECT*FROMfooWHEREbar@>'{"baz":"`+"qux"+`"}'`我该如何解决?在@mkopriva的评论后编辑:如何使用jsonb_*函数构建此json[{"foo":$1}]?尝试了以下但没

postgresql - 如何使用 lib/pq 将 hstore 对象插入到 postgres

对于这张表,#\dtableTable"public.table"Column|Type|Collation|Nullable|Default------------+-----------------------------+-----------+----------+--------------------id|uuid||notnull|uuid_generate_v4()my_field|hstore|||Indexes:"table_pkey"PRIMARYKEY,btree(id)如何使用lib/pq更新my_field?我试着跟随,package"main"import