go data_error ai_generated true

错误:sql:列索引2上的扫描错误:不支持将NULL转换为string

error: sql: Scan error on column index 2: converting NULL to string is unsupported

ID: go/database-sql-null-value-in-non-null-column

其他格式: JSON · Markdown 中文 · English
80%修复率
87%置信度
0证据数
2025-10-05首次发现

版本兼容性

版本状态引入弃用备注
1.20 active
1.21 active

根因分析

将NULL数据库值扫描到不可为空的Go类型,如string或int,而未使用sql.Null*类型。

English

Scanning a NULL database value into a non-nullable Go type, such as string or int, without using sql.Null* types.

generic

解决方案

  1. 95% 成功率 Use sql.NullString and similar types
    var name sql.NullString
    if err := rows.Scan(&name); err != nil { return err }
    if name.Valid { /* use name.String */ } else { /* handle NULL */ }

无效尝试

常见但无效的做法:

  1. Using default values manually 50% 失败

    May mask actual NULL meaning; use NullString for proper handling.