无法删除表,无法检查打开的连接

无法删除表,无法检查打开的连接

postgres我以用户身份连接到数据库postgres

docker exec -it mycontainer psql -h localhost -U postgres

我看到了数据库:

postgres=# \l
                                 List of databases
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges

-----------+----------+----------+------------+------------+--------------------
---
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 srdb      | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =Tc/postgres       
  +
           |          |          |            |            | postgres=CTc/postgr
es+
           |          |          |            |            | sruser=CTc/postgres
 template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres        
  +
           |          |          |            |            | postgres=CTc/postgr
es
 template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres        
  +
           |          |          |            |            | postgres=CTc/postgr
es
(4 rows)

我想删除一个表,但什么也没发生:

postgres=# DROP DATABASE srdb

也许有其他人连接上了?我们来检查一下:

postgres-# SELECT * FROM pg_stat_activity

没有什么!

我究竟做错了什么?

答案1

SQL 语句可能跨越多行,因此需要用分号;(或较少使用的元命令\g)标记语句的结束

您的DROP DATABASE srdb和 均未发送到服务器SELECT * FROM pg_stat_activity,就 psql 而言,它是一个未完成的单个语句。还请注意-#第二行的提示与=#第一行的 有何不同:它是一个辅助提示,表示输入的延续,请参阅在 psql 中提示

相关内容