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 關注
- 97 瀏覽
添加回答
舉報