知识ID:PowerBT0024
适用版本:3.5.X,4.0,4.1,5.0
出现问题:Primary Key约束在对象UACCESS中出现冲突
1 用户登录时出现问题,如图:

2 打开项目时,出现“一个项目多于一个最高WBS”的提示;
3 数据库升级之后,用户不能正常登录;
4 出现“Key violation. Violation of primary key constraint 'Pk_UAccess'
EDBEnginError KVVCP-1971-2 Key Violation ”的提示。
解决方案: 1、 解决这个问题,要求对数据库进行一定地修复,所以,请先对数据库PMDB进行备份。
2、 连接数据库:
l 如果是MS SQL Server
请以privuser用户登录MS SQL Server的查询分析器
l 如果是Oracle
请以admuser用户登录Oracle的SQLPlus,或者其他类似的工具
l 如果是Interbase
请以sysdba登录ISQL
3、 执行下面语句
select proj_id, proj_node_flag from projwbs where proj_node_flag = 'Y' group by proj_id, proj_node_flag having count(1) > 1
本例中反馈结果为
524 Y
4、 执行下面语句
select wbs_id, proj_node_flag from projwbs where proj_id = '524’ //524是上一条语句查询反馈的结果
本例中反馈结果为
wbs_id proj_node_flag
17340 Y 17350 N 17351 N 17352 N 17353 N 17354 N 17355 N 17356 N 17357 N 17443 Y
5、选择上述语句中反馈中最大值,本例中最大值为17443 Y。运行下列语句更新,
update projwbs set proj_node_flag = 'N' where wbs_id ='17340' //17340是上一条语句查询反馈结果中WBS_id最大值。
执行完了结果应该为:
(所影响的行数为 1 行)
(所影响的行数为 1 行)
6、关闭SQL工具; 7、重新登录PM。
|