55006: object_in_use
PostgreSQL含义
由于目标对象(通常是数据库)正被其他会话使用,无法对其执行操作。例如,无法删除有活动连接的数据库。
原因
执行 DROP DATABASE 时数据库仍有打开的连接;需要对正在使用的对象加排他锁的操作;另一会话正持有该对象。
解决方法
找到并终止到目标数据库的打开连接:SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'db_name' AND pid <> pg_backend_pid(); 阻止新连接(必要时)。在 PostgreSQL 13+ 上,可在强制关闭连接的同时删除:DROP DATABASE db_name WITH (FORCE);