SQL 上次插入 ID 始终返回 0

query, err := dbSQL.Prepare(`

        INSERT INTO class (

            subject_id,

            class_name,

            createAt,

            updatedAt,

        )

        VALUES (?, ?, NOW(), NOW())

    `)


checkError(err)


result, err := query.Exec(

    subjectID,

    className,

)


checkError(err)


returnID, err := result.LastInsertId()


checkError(err)


dbSQL.Commit()

returnID始终返回 0


注意:我的自动增量被禁用。


这是怎么回事?是因为低于还是自动递增而使混乱?dbSQL.Commit()result.LastInsertId()


烙印99
浏览 97回答 1
1回答

互换的青春

在此线程中提到了它,作为建议:最好使用 SP 并在此 SP 中返回最后一个 ID(SP:存储过程)围棋中的示例。示例:“在 mySQL 服务器上执行存储过程时如何获取最后插入 ID"如这里所述,这比依靠直接呼叫更安全。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go