2 回答

TA贡献1946条经验 获得超3个赞
从文档中:
Exec 执行不返回行的查询。例如:插入和更新。
请尝试。我没有针对您的数据集(显然)对其进行测试,但希望它能为您提供一些良好的方向。此外,您还应该正确处理错误。Query
type row struct {
Count int `json:"count"`
}
response, _ := db.Query("SELECT count(isReward) as count from Transaction_history WHERE rollno = ? AND isReward = ?", rollno, 1)
var rows []row
_ = response.Scan(&rows)
count := rows[0].Count
如果收到数据库锁定错误,请确保未尝试同时查询 SQLite。您可以创建一个全局互斥体,并确保针对数据库的每个查询都获取锁。
var m sync.Mutex
func createTransactionTable(...) {
m.Lock()
defer m.Unlock()
// Perform your query here
}

TA贡献1829条经验 获得超7个赞
我认为如果你像这样使用驱动程序会更容易
sqliteDatabase, _ := sql.Open
("sqlite3", "./sqlite-database.db") // Open the created SQLite File
defer sqliteDatabase.Close() // Defer Closing the database
createTable(sqliteDatabase) // Create Database Tables
// INSERT RECORDS
insertStudent(sqliteDatabase, "0001", "Liana Kim", "Bachelor")
// and InsertStudent func like this
createStudentTableSQL := `CREATE TABLE student (
"idStudent" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"code" TEXT,
"name" TEXT,
"program" TEXT
);`
log.Println("Create student table...")
statement, err := db.Prepare(createStudentTableSQL) // Prepare SQL Statement
if err != nil {
log.Fatal(err.Error())
}
statement.Exec() // Execute SQL Statements
log.Println("student table created")
您可以使用这样的方法
- 2 回答
- 0 关注
- 81 浏览
添加回答
举报