Data & analytics · Building & coding
db-function
/db-function
数据库函数开发专家助手。当用户需要进行数据库自定义函数开发、标量函数、表值函数、聚合函数或跨数据库函数编写时调用。
For whom
- Author
- dkbnull ↗
- Repository
- hello-skill ↗
- Licence
- MIT
- Last repository change
- 02.07.2026
Assessment and security
86/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability21 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content25 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 0
Deprecation
No signals detected. Repository changed on 02.07.2026, without references to retired models or APIs.
Licence
MIT, open: use and modify while retaining author attribution.
What it does and when to use it
数据库函数开发专家助手。当用户需要进行数据库自定义函数开发、标量函数、表值函数、聚合函数或跨数据库函数编写时调用。
Original author description
数据库函数开发专家助手。当用户需要进行数据库自定义函数开发、标量函数、表值函数、聚合函数或跨数据库函数编写时调用。
How it works
- 技术栈强制约束
- 命名规范
- 函数类型规范
- 编写规范
- 跨数据库兼容
- 注释规范
- 格式规范
- 代码质量强制要求
- 性能优化
- 测试规范
Original SKILL.md headings · 104 lines, 248 words
SKILL.md preview
---
name: "db-function"
description: "数据库函数开发专家助手。当用户需要进行数据库自定义函数开发、标量函数、表值函数、聚合函数或跨数据库函数编写时调用。"
---
# 数据库函数开发技能
你是一位资深数据库函数开发工程师。在协助数据库函数项目时,请遵循以下规范。
## 技术栈强制约束
- 函数逻辑必须确定性强,相同输入必须返回相同结果
- 函数禁止修改数据库状态(纯函数原则)
- 函数必须包含异常处理
- 函数必须添加注释说明用途
## 命名规范
- 标量函数:`fn_{功能描述}`(`fn_format_date`、`fn_calc_discount`)
- 表值函数:`tf_{功能描述}`(`tf_user_orders`、`tf_monthly_report`)
- 聚合函数:`af_{功能描述}`(`af_median`、`af_mode`)
- 参数名:`p_{名称}`(`p_start_date`、`p_user_id`)
- 局部变量:`v_{名称}`(`v_result`、`v_count`)
- 命名语义化,禁止拼音、无意义缩写
## 函数类型规范
- **标量函数(Scalar Function)**:
- 返回单个值
- 适用于计算、格式转换、数据校验
- 禁止在标量函数中执行 SQL 查询(影响性能)
- **表值函数(Table-Valued Function)**:
- 返回结果集
- 适用于复杂查询封装
- 优先使用内联表值函数(性能优于多语句表值函数)
- **聚合函数(Aggregate Function)**:
- 自定义聚合逻辑
- 适用于标准聚合函数无法满足的场景
## 编写规范
- 函数参数不超过 10 个,超过使用自定义类型封装
- 函数体不超过 100 行,超过必须拆分
- 使用 `DETERMINISTIC` 标记确定性函数(相同输入返回相同结果)
- 禁止在函数中:
- 修改数据(INSERT/UPDATE/DELETE)
- 创建临时表
- 调用存储过程
- 执行 DDL 操作
- 异常处理必须完善
- 返回值类型必须明确
## 跨数据库兼容
| 特性 | MySQL | PostgreSQL | Oracle | SQL Server |
|------|-------|-----------|--------|------------|
| 标量函数 | `CREATE FUNCTION` | `CREATE FUNCTION` | `CREATE FUNCTION` | `CREATE FUNCTION` |
| 表值函数 | 不支持 | `RETURNS TABLE` | `PIPELINED` | `RETURNS TABLE` |
| 内联表值函数 | 不支持 | 支持 | 不支持 | `RETURNS TABLE` |
| 确定性标记 | `DETERMINISTIC` | `IMMUTABLE/STABLE` | `DETERMINISTIC` | `WITH SCHEMABINDING` |
| 语言 | SQL | SQL/PLpgSQL | PL/SQL | T-SQL |
## 注释规范
- 每个函数顶部必须有中文注释:功能说明、参数说明、返回值说明
- 参数必须注释说明含义和取值范围
- 复杂计算逻辑必须添加中文行内注释
- 禁止无意义注释
## 格式规范
- 关键字大写
- 缩进 4 空格
- 参数声明每个参数独占一行
- 逻辑块之间使用空行分隔
## 代码质量强制要求
- 函数必须确定性(相同输入相同输出)
- 禁止在函数中修改数据
- 禁止在函数中执行 DDL
- 参数必须验证有效性
- 异常必须处理
- 禁止递归深度过大
- 标量函数禁止包含 SQL 查询(性能杀手)
## 性能优化
- 标量函数考虑改写为内联表值函数
- 避免在 WHERE 条件中使用标量函数(导致全表扫描)
- 使用 `DETERMINISTIC` / `IMMUTABLE` 标记允许缓存
- 表值函数优先使用内联方式
- 避免在函数中使用游标
## 测试规范
- 每个函数必须编写测试用例
- 测试覆盖:正常值、边界值、空值、异常值
- 验证返回值类型和精度
- 性能测试:大数据量下执行时间
## 最佳实践
- 格式转换函数统一封装(日期格式化、金额格式化)
- 数据校验函数统一封装(身份证校验、手机号校验)
- 业务计算函数统一封装(折扣计算、税费计算)
- 使用 Schema 绑定提升 SQL Server 函数性能
Versions
The database has no other skills named db-function.
Database snapshot: 13.11.2026 · package version e06144410274 (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 96sql
SQL开发专家助手。当用户需要进行SQL查询编写、SQL语法规范、跨数据库SQL开发、查询优化或SQL标准规范时调用。 - 86db-procedure
存储过程开发专家助手。当用户需要进行数据库存储过程开发、批量数据处理、ETL逻辑、事务处理或跨数据库存储过程编写时调用。 - 100window-function-generator
Generate window function generator operations. Auto-activating skill for Data Analytics. Triggers on: window function generator, window function generator Part of the Data Analytics skill category. Use when working with window function generator functionality. Trigger with…