当前位置:首页 >专题 >sqlc 类型安全 SQL 工程实践专题

sqlc 类型安全 SQL 工程实践专题
sqlc 类型安全 SQL

sqlc 类型安全 SQL 工程实践专题

从 SQL 查询到可维护的 Go 数据访问层
sqlc 把开发者写下的 SQL 查询编译成类型安全的 Go 代码,适合希望减少 ORM 魔法、保留 SQL 控制力并提升数据访问可维护性的团队。本专题从官方文档入口开始,串起配置、查询参数、生成代码、数据库兼容和上线排错。

官方入口与基础配置

先建立版本、数据库和生成器边界

sqlc 官方文档
外链

sqlc 官方文档

sqlc 稳定版文档总入口,覆盖安装、配置、生成和参考手册。
sqlc 官方 GitHub 与最新版本
外链

sqlc 官方 GitHub 与最新版本

查看 sqlc 源码、发布版本、支持的生成器和项目状态。
安装 sqlc
外链

安装 sqlc

按官方方式安装 sqlc CLI,并确认本地版本。
数据库与语言支持矩阵
外链

数据库与语言支持矩阵

核对 Go、MySQL、PostgreSQL、SQLite 及插件支持状态。
sqlc 使用 Go 与 pgx
外链

sqlc 使用 Go 与 pgx

官方示例展示如何让生成代码使用 pgx 数据库驱动。

站内实战文章

从查询生成到类型、错误与连接问题

Go语言使用sqlc教程详解
文章

Go语言使用sqlc教程详解

介绍 Go 项目中使用 sqlc 生成数据访问代码的基本流程。
GolangSQL生成指南:sqlc类型安全配置详解
文章

GolangSQL生成指南:sqlc类型安全配置详解

围绕 sqlc 配置和类型安全代码生成讲解工程化用法。
引用参数在 golang sqlc 中的使用
文章

引用参数在 golang sqlc 中的使用

聚焦 sqlc 查询参数定义与 Go 调用方式。
在扫描 SQLC 生成的代码时,使用 LEFT 连接查询时遇到 NULL 列导致出错
文章

在扫描 SQLC 生成的代码时,使用 LEFT 连接查询时遇到 NULL 列导致出错

分析 sqlc 生成代码在 LEFT JOIN 与 NULL 数据下的扫描问题。
在运行时切换数据库连接时的 SQLC 用法指南
文章

在运行时切换数据库连接时的 SQLC 用法指南

讨论生成代码与运行时数据库连接切换的组合方式。
Golang实现OpenAPI3.0规范教程
文章

Golang实现OpenAPI3.0规范教程

从接口规范角度理解生成式 API 的契约与实现衔接。
在Go语言中使用OpenAPI/Swagger进行API文档编写
文章

在Go语言中使用OpenAPI/Swagger进行API文档编写

介绍 Go 服务的 API 文档与接口协作实践。
Go微服务接口规范与OpenAPI实践
文章

Go微服务接口规范与OpenAPI实践

讨论 Go 微服务接口规范、契约和工程协作。

常见问题

选择 sqlc 前后最容易混淆的边界

sqlc 和 ORM 有什么区别?

sqlc 让开发者保留 SQL 控制力,再从查询生成类型安全的 Go 代码;ORM 通常提供更高层的对象映射和查询抽象。两者应按团队对 SQL 控制、迁移和抽象层的取舍选择。

sqlc 生成代码应该提交到 Git 吗?

通常应提交生成代码,或在 CI 中固定 sqlc 版本并强制重新生成后检查差异。关键是让生成器版本、schema、queries 和生成结果保持可追溯。

sqlc 如何处理 LEFT JOIN 返回的 NULL?

应根据数据库类型和 sqlc 配置使用可空类型,并在查询与领域模型之间明确 NULL 的语义;不要只依赖指针或零值猜测业务含义。

sqlc 适合 PostgreSQL 还是 MySQL?

两者都在官方支持范围内。应先查看稳定版支持矩阵,再根据项目 SQL 方言、驱动、迁移工具和团队经验选择;不要把一个数据库的查询写法直接复制到另一个数据库。

微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码