У меня есть таблица в PostgreSQL, представленная следующей структурой Go:
type AppLog struct {
ID int // set to auto increment in DB, also a primary key
event string
createTime time.Time
}
Я настроил ежемесячное разбиение таблицы с указанным выше в качестве базовой таблицы и триггером вставки для маршрутизации данных в дочернюю таблицу за текущий месяц, используя значения dateTime в качестве ключа разделения.
[триггерная функция и т. д. опущены для краткости]
Когда я пытаюсь вставить в таблицу AppLog, Postgres направляет операцию в соответствующую дочернюю таблицу, скажем, AppLog_2017-05 (таблица текущего месяца), но вставка не выполняется со следующей ошибкой:
INSERT INTO "app_logs" ("event", "create_time")
VALUES ('device /dev/sdc is now ready','2017-05-26T15:04:30+05:30')
RETURNING "app_logs"."id"
ОШИБКА: sql: в наборе результатов нет строк
Когда тот же запрос выполняется в оболочке Postgres, он работает нормально.
Может ли кто-нибудь помочь мне понять, как делать вставки с помощью GORM в PostgreSQL, где разделение таблицы настроено за сценой? Я не уверен, что это проблема с GORM, драйвером Go PostgreSQL или пакетом Go Database / SQL. Или, если мне что-то не хватает.
Любая помощь будет принята с благодарностью.