项目场景:
用pgsql执行存储过程
CREATE OR REPLACE PROCEDURE cdms.sp_ims_hco()
LANGUAGE plpgsql
AS $procedure$
execute 'truncate table ims_hco_temp';
execute 'truncate table ims_hco_error';
end;$procedure$
;
问题描述
其中一张表无法删除查询和修改(任何操作)
原因分析:
由于执行存储过程时直接关闭java程序无法停止掉正在执行的存储过程,导致数据库出现了死锁。
解决方案:
只需要查询到被锁住的对应进程再杀掉进程即可。
查询正在执行的sql进程信息
SELECT * FROM pg_stat_activity WHERE datname='postgres' order by client_addr asc;
输入该sql语句杀掉该进程
SELECT pg_terminate_backend(32067);