云数据库 GEMINIDB-通过Go连接实例:执行读写

时间:2024-01-18 16:52:20

执行读写

使用 Session.Query 创建查询。查询参数不能用于其他语句,并且不能在开始查询之后进行修改。

要在不读取结果的情况下执行查询,请使用 Query.Exec:

 err := session.Query(`INSERT INTO tweet (timeline, id, text) VALUES (?, ?, ?)`,
        "me", gocql.TimeUUID(), "hello world").WithContext(ctx).Exec()

可以通过调用 Query.Scan 读取单行:

 err := session.Query(`SELECT id, text FROM tweet WHERE timeline = ? LIMIT 1`,
        "me").WithContext(ctx).Consistency(gocql.One).Scan(&id, &text)

可以使用 Iter.Scanner 读取多行:

scanner := session.Query(`SELECT id, text FROM tweet WHERE timeline = ?`,
    "me").WithContext(ctx).Iter().Scanner()
 for scanner.Next() {
    var (
        id gocql.UUID
        text string
    )
    err = scanner.Scan(&id, &text)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Tweet:", id, text)
 }
 // scanner.Err() closes the iterator, so scanner nor iter should be used afterwards.
 if err := scanner.Err(); err != nil {
    log.Fatal(err)
 }
support.huaweicloud.com/cassandraug-nosql/nosql_02_0010.html