Как динамически установить имя таблицы для каждого запроса в go-pg?

У меня есть куча похожих временных таблиц, которые я пытаюсь запросить, используя ORM go-pg. Я не могу найти способ динамического изменения запрашиваемой таблицы во время выбора:

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 ответа

Получил ответ на github:

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

Кажется, вы можете указать таблицу напрямую: db.Model(&mymodels).Table('temp_table1').Column("mymodel.id", "mymodel.name").Select()

Другие вопросы по тегам