我正在尝试使用 Golang 创建一个 SQLite 数据库,用于程序的本地安装。但我现在的问题是,由于某种原因它似乎起作用了,但我不知道为什么。它总是说,当我想用 SQL 查询 (CREATE DATABASE [name]) 创建数据库时,它说语法无效。因为这个查询似乎存在于 SQLite 中,所以我只尝试创建表,但后来我得到一个错误,说我使用了一个未知的数据库。我现在尝试了很多东西,但似乎没有任何效果。首先,我认为可能是因为在创建/打开数据库连接之前执行了查询而发生了错误。但现在 100% 不是这种情况,因为我尝试在执行 sql 查询之前睡觉,什么都没有改变。运行此代码时出现的错误:
panic: near "DATABASE": syntax error
goroutine 1 [running]:
git.lambya.com/lucwol/coreflare/database.checkError(...)
/home/lambya/Dev/piflare/coreflare/database/db.go:37
git.lambya.com/lucwol/coreflare/database.deploy()
/home/lambya/Dev/piflare/coreflare/database/db.go:28 +0xdc
git.lambya.com/lucwol/coreflare/database.Connect({0x832adf, 0x9})
/home/lambya/Dev/piflare/coreflare/database/db.go:23 +0xbb
main.main()
/home/lambya/Dev/piflare/coreflare/main.go:102 +0x29
exit status 2
感谢您的支持 :)
继承人的代码。
package database
import (
"database/sql"
"os"
"time"
_ "github.com/mattn/go-sqlite3"
)
var DB *sql.DB
func Connect(path string) {
if _, err := os.Stat(path); err != nil {
file, err := os.Create(path)
checkError(err)
file.Close()
}
db, err := sql.Open("sqlite3", path)
checkError(err)
time.Sleep(time.Millisecond * 2000)
DB = db
deploy()
}
func deploy() {
query, err := DB.Prepare("CREATE DATABASE test")
checkError(err)
query.Exec()
query2, err := DB.Prepare("CREATE TABLE test.user(id int NOT NULL AUTO_INCREMENT, name varchar(50), PRIMARY_KEY(id))")
checkError(err)
query2.Exec()
}
func checkError(err error) {
if err != nil {
panic(err)
}
}
呼如林
四季花海
随时随地看视频慕课网APP
相关分类