Как динамически установить имя таблицы для каждого запроса в 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()