Писал ли функции в БД

«Писал ли функции в БД» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, в Go можно писать функции для работы с базами данных. Чаще всего используются драйверы database/sql и ORM вроде GORM. Пример функции для вставки данных в PostgreSQL:

func insertUser(db *sql.DB, name string, age int) error {
    _, err := db.Exec("INSERT INTO users (name, age) VALUES ($1, $2)", name, age)
    if err != nil {
        return fmt.Errorf("insert failed: %w", err)
    }
    return nil
}

Ключевые моменты:

  • Всегда проверяйте ошибки
  • Используйте параметризованные запросы для защиты от SQL-инъекций
  • Закрывайте соединения (Rows, Stmt, Tx) через defer
  • Для сложных операций используйте транзакции

Для ORM типа GORM код будет более декларативным.