使用go从我的sqlite数据库中获取最新记录

贾斯汀:

我想查询我的sqlite数据库以获取我的书表中的最后一个id,然后插入带有最后一个id + 1的数据。我是Go语言的新手,我不知道如何设置我的lastid int变量。任何帮助将不胜感激。

func getBookLastID() {

  var lastid int
  err := db.QueryRow("select max(id) from books").Scan(&lastid)
  fmt.Println(lastid)
  return (lastid + 1)
}

func insertBook(name, author string, pages int, publicationDate time.Time) (int, error) {
        //Create
        var bookID int

        var lastid int 
        lastid = getBookLastID()

        err := db.QueryRow(`INSERT INTO books(id, name, author, pages, publication_date) VALUES($1, $2, $3, $4, $5)`, lastid, name, author, pages, publicationDate).Scan(&bookID)

        if err != nil {
                return 0, err
        }

        fmt.Printf("Last inserted ID: %v\n", bookID)
        return bookID, err
}
贾斯汀:

我在功能中缺少“ int”

错误:

func getBookLastID() {....

正确:

func getBookLastID() int {....

全部纠正:

func getBookLastID() int { 

    var id int

    err := db.QueryRow("select ifnull(max(id), 0) as id from books").Scan(&id)
    if err != nil {
      panic(err)
    }
    fmt.Println("New record ID is:", id + 1)
    return id + 1
}

func insertBook(name, author string, pages int, publicationDate time.Time) (int, error) {
    //Create

    lastid := getBookLastID() 


    res, err := db.Exec(`INSERT INTO books(id, name, author, pages, publication_date) VALUES($1, $2, $3, $4, $5)`, lastid, name, author, pages, publicationDate)

    if err != nil {
        return 0, err
    }

    rowsCreated, err := res.RowsAffected()

        if err != nil {
        return 0, err
    }

    return int(rowsCreated), err

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从mysql数据库多个表中获取最新记录

从Core数据库获取最新记录

使用 SQL 从数据库中获取某些记录

从数据库获取最新记录的有效方法

如何从Firebase实时数据库获取最新记录

如何编写查询以从数据库表中获取最新记录

使用 Codeigniter 获取数据库记录

从sqlite数据库中获取数据不返回任何记录

我总是在数据库中获取最新数据

当我获取数据时,始终仅从sqlite数据库中获取First值

SQLite数据库获取所有记录NullPointerException

我的数据库记录未在sqlite浏览器中显示

我如何自动从数据库中获取最新的meta id

如何从django中的数据库获取最新数据

我想在MySQL数据库中获取逗号分隔的记录

如何从SQLite数据库的新记录中获取char数据类型的字段,以及使用dapper + c#由触发器生成的字段

从此SQL创建LINQ语句以获取数据库中每个原始记录的最新编辑

无法更新sqlite数据库中的记录

记录不会从SQLite数据库中删除

获取数据库中每个用户的最新状态更新

使用PHP Tinker从SQlite删除数据库记录

获取选择框以使用mysql数据库中的最新值设置默认值

如何使用 sqlalchemy 从 Flask 中的 SQlite 数据库中获取(检索)数据

使用 any() 使用 dbplyr 从 SQLite 数据库中获取数据

如何使用laravel在数据表中显示我的数据库记录

如何从Go lang中的数据库中获取数据

从数据库表获取最新数据

导出的SQLite数据库不是最新的

从数据库中获取单个记录,并使用Codeigniter在文本框中显示