我正在尝试删除我当前连接的数据库,但是我遇到了这个错误:
pq: cannot drop the currently open database
如果我必须关闭连接,那么我真的不明白如何能够删除数据库,因为这样我似乎无法使用dbConn.Exec来执行我的DROP DATABASE语句。
dbConn *sql.DB
func stuff() error {
_, err := dbConn.Exec(fmt.Sprintf(`DROP DATABASE %s;`, dbName))
if err != nil {
return err
}
return dbConn.Close()
}
我想我可以连接到一个不同的数据库,然后在该连接上执行它,但我甚至不确定这样是否有效,而且好像必须连接到新的数据库才能删除不同的数据库,这看起来很奇怪。有什么想法吗?谢谢。
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';
- t_ioDROP DATABASE mydb WITH (FORCE);
代替。 - Lord Elrondpsql (13.3 (Debian 13.3-1.pgdg100+1))
键入“help”获取帮助。
dbname=# drop database dbname with (force);
错误:无法删除当前打开的数据库
dbname=#
- Eugene Gr. Philippov