Поддерживает ли Go-Gorm вставку с автоматически увеличивающимся идентификатором для секционированных таблиц в PostgreSQL?

У меня есть таблица в 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. Или, если мне что-то не хватает.

Любая помощь будет принята с благодарностью.


person Saurav Haloi    schedule 26.05.2017    source источник


Ответы (1)


Я получил ответ. Это не было проблемой с GORM или Go-PQ. Я немного ошибся в своей триггерной функции, возвращая вставленные значения из дочерней таблицы.

person Saurav Haloi    schedule 26.05.2017