PostgreSQL 9.2.24无法编辑/删除数据,phpPgAdmin报无唯一标识符错误求助
检查主键/唯一键数据类型适配
PostgreSQL 9.2.24对UUID、JSON/JSONB或自定义类型的主键识别存在局限,部分cPanel适配的phpPgAdmin版本可能未兼容这类类型。可临时将主键改为SERIAL或INT测试,若能正常编辑,需调整phpPgAdmin的config.inc.php配置,开启对应数据类型支持,或在cPanel允许的前提下升级phpPgAdmin版本。验证系统表主键信息检测
phpPgAdmin通过information_schema识别主键,若系统表数据异常或权限不足会导致检测失败。执行以下SQL检查目标表主键:SELECT column_name FROM information_schema.table_constraints tc JOIN information_schema.constraint_column_usage ccu ON tc.constraint_name = ccu.constraint_name WHERE tc.table_name = 'your_table_name' AND tc.constraint_type = 'PRIMARY KEY';若返回正确主键但phpPgAdmin仍报错,清空phpPgAdmin缓存目录(如
/var/cache/phpPgAdmin/),重启PHP-FPM服务。排查PHP 7.4兼容性问题
适配PostgreSQL 9.2的旧版phpPgAdmin可能和PHP 7.4存在函数兼容性问题(如废弃函数导致逻辑失效)。查看phpPgAdmin错误日志(cPanel“错误日志”模块或/usr/local/cpanel/logs/phpPgAdmin/路径),根据报错修改对应源码,替换为PHP 7.4兼容的函数实现。确认PostgreSQL系统表权限
即使拥有全库权限,仍需确认是否具备pg_constraint等系统表的查询权限:SELECT has_table_privilege(current_user, 'pg_constraint', 'SELECT');若返回
f,执行授权语句:GRANT SELECT ON pg_constraint TO your_user;同时检查
search_path确保包含pg_catalog和information_schema:SHOW search_path;检查cPanel专属配置限制
cPanel集成的phpPgAdmin可能有自定义安全限制。尝试切换至cPanel原生phpPgAdmin版本,或在“PostgreSQL数据库”模块确认enable_pgadmin_editing类选项是否开启。
内容的提问来源于stack exchange,提问作者Daniela Zavallone

