为了账号安全,请及时绑定邮箱和手机立即绑定

SQL逻辑错误: near "RETURNING": syntax error (1) Go

SQL逻辑错误: near "RETURNING": syntax error (1) Go

Go
阿波罗的战车 2022-12-13 16:20:19
我正在创建一个 crud 应用程序,并且正在使用内存数据库测试数据库。唯一中断的测试和函数是 toggleTask 函数和测试。功能:func (r *Repository) ToggleTask(task Task) (Task, error) {    query := "UPDATE Tasks SET completed = NOT completed WHERE id = (?)"    _, err := r.db.Exec(query, task.ID)    if err != nil {        return task, err    }    query = "SELECT id, txt, completed FROM Tasks WHERE id = (?) RETURNING *"    err = r.db.QueryRow(query, task.ID).Scan(&task.ID, &task.Text, &task.ListID, &task.Completed)    if err != nil {        return task, err    }    return task, nil}测试:const (    ToggleTask = "SELECT id, txt, completed FROM Tasks WHERE id = (?) RETURNING *")func TestToggleTask(t *testing.T) {    repo := mockDbRepo()    list := List{Name: "Test List"}    repo.db.Exec(CreateList, list.Name)    task := Task{Text: "Test Task", ListID: list.ID}    repo.db.Exec(CreateTask, task.Text, task.ListID)    completedTask,err := repo.ToggleTask(task)    if err != nil {        t.Error(err)    }    if !reflect.DeepEqual(completedTask, task) {        t.Errorf("Expected %v, got %v", task, completedTask)    }}测试返回给我:SQL 逻辑错误:“RETURNING”附近:语法错误 (1)
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

您的 SQL 查询不正确。如 SQL Lite 文档中所述,SELECT不接受RETURNING子句。该SELECT子句本身返回数据。在您的查询中删除您的RETURNING条款,您应该会很好。

SQL Lite 参考: https: //www.sqlite.org/lang_select.html


查看完整回答
反对 回复 2022-12-13
  • 1 回答
  • 0 关注
  • 352 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号