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

时间:2016-10-24 22:50:43

标签: postgresql go go-pg

我有一堆类似的临时表,我试图使用go-pg的ORM进行查询。我无法在选择期间找到一种动态更改查询表的方法:

import "gopkg.in/pg.v4"

type MyModel struct {
    TableName struct{} `sql:"temp_table1"`
    Id              int64
    Name            string  
}

var mymodels []MyModel
err := db.Model(&mymodels).Column("mymodel.id", "mymodel.name").Select()

这将按照模型temp_table1中的定义查询TableName。有没有办法将表名作为参数传递,以便我可以查询temp_table_X

(我可以不使用ORM并使用原始db.Query(),但我想看看是否有办法使用ORM。)

2 个答案:

答案 0 :(得分:1)

github上找到答案:

err := db.Model().TableExpr("temp_table_999 AS mymodel").Column("mymodel.id", "mymodel.name").Select(&mymodels)

答案 1 :(得分:0)

似乎你可以specify the table directly data: 'action=quote_ajax_submission&'+dataString,