Golang中忘记导入包怎么办?

Golang中忘记导入包怎么办? 出现错误:

2019/03/02 11:23:33 sql: unknown driver “postgres” (forgotten import?) exit status 1

在代码中

db, err := sql.Open(“postgres”, os.Getenv(“ELEPHANTSQL_URL”))

“database/sql” 已经在导入列表中, 是否需要使用其他导入?

db, err := sql.Open("postgres", os.Getenv("ELEPHANTSQL_URL"))
2 回复

是的,您忘记导入 PostgreSQL 驱动程序了。

类似这样:

import _ "package/name/of/driver/for/postgres"

更多关于Golang中忘记导入包怎么办?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这个错误是因为虽然导入了 database/sql 包,但没有导入 PostgreSQL 数据库驱动包。database/sql 包只提供了通用的数据库操作接口,具体的数据库驱动需要单独导入。

你需要导入 PostgreSQL 驱动包。在 Go 中,通常使用 github.com/lib/pq 作为 PostgreSQL 驱动。

在你的导入部分添加:

import (
    "database/sql"
    _ "github.com/lib/pq"
    "os"
)

注意驱动包前面的下划线 _,这是 Go 中的空白导入,用于执行包的初始化代码(注册驱动),而不直接使用包中的函数。

完整示例:

package main

import (
    "database/sql"
    _ "github.com/lib/pq"
    "log"
    "os"
)

func main() {
    db, err := sql.Open("postgres", os.Getenv("ELEPHANTSQL_URL"))
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()
    
    // 测试数据库连接
    err = db.Ping()
    if err != nil {
        log.Fatal(err)
    }
    
    log.Println("成功连接到 PostgreSQL 数据库")
}

首先需要安装驱动包:

go get github.com/lib/pq

这样就能解决 “unknown driver” 的错误了。

回到顶部