# #go #go-gorm #pq
Вопрос:
Я пытаюсь следовать документации Горма, чтобы создать сгенерированное поле, определяемое функцией:
type Foo struct {
ID int64 `json:"id"`
AmountOfBars string `json:"amount_of_bars" gorm:"default:amount_of_bars()"`
}
type RelatedBar struct {
FooId int64 `json:"foo_id"`
}
Однако я не понимаю, где и как определить amount_of_bars, поэтому я смогу вернуть сумму строк, связанных с RelatedBar.
Комментарии:
1. Если посмотреть на
uuid_generate_v3()
функцию из документации,amount_of_bars()
то она должна быть функцией, определенной в вашей базе данных.
Ответ №1:
Вы не определяете такую функцию в Go, вы определяете ее в своей базе данных с помощью CREATE FUNCTION
. Видишь https://www.postgresql.org/docs/9.1/sql-createfunction.html.
Комментарии:
1. Звучит неплохо, можно ли добавить эту функцию программно через pq голанга или gorm? Я не хочу, чтобы в моей базе данных что-либо настраивалось вручную…
2. @idik Вы можете использовать
Exec
для запуска произвольного SQL в вашей базе данных.