Primary Key约束在对象UACCESS中出现冲突
vHI"C % 1 用户登录时出现问题,如图:
CQ8o9A/ 6XOpB^@ N}l]Ilm$34 O&?CoA? rd"]@~v1 .~A"Wyu\ H%NLL4&wu !aW*dD61 S"KTL *9D 2 打开项目时,出现“一个项目多于一个最高WBS”的提示;
QzFv
; L>5!3b=b 3 数据库升级之后,用户不能正常登录;
u'~b<@wHB E?m#S 4 出现“Key violation. Violation of primary key constraint 'Pk_UAccess'
Z'EO EDBEnginError KVVCP-1971-2 Key Violation ”的提示。
hml\^I8Q>F ILr6W@o5A 解决方案:
k,N
U,^ & !iitx U [q>i 1、 解决这个问题,要求对数据库进行一定地修复,所以,请先对数据库PMDB进行备份。
S9"y@F
< -{:LxE 2、 连接数据库:
PM@s}( 如果是MS SQL Server请以privuser用户登录MS SQL Server的查询分析器
.{]c&Ef+f 如果是Oracle请以admuser用户登录Oracle的SQLPlus,或者其他类似的工具
dpGQ0EzH^ 如果是Interbase请以sysdba登录ISQL
^`>Ysc(@& a4a[pX,5 3、 执行下面语句
kJ<Xq
select proj_id, proj_node_flag from projwbs where proj_node_flag = 'Y' group by proj_id, proj_node_flag having count(1) > 1
jVFRq T% 本例中反馈结果为
+SA<0l 524 Y
NK#"qK""k zju,#% 4、 执行下面语句
O->(9k
< select wbs_id, proj_node_flag from projwbs where proj_id = '524’ //524是上一条语句查询反馈的结果
??%T 本例中反馈结果为
^Lv^W wbs_id proj_node_flag
_M]rH<h 17340 Y
\PMKmJX0O 17350 N
7F9g:r/^ 17351 N
DdS3<3]A 17352 N
Jgv>$u 17353 N
L+ETMk0 17354 N
wZ3vF)2s 17355 N
b;;Kxi:7$} 17356 N
Ty4%du6?d 17357 N
j!_^5d#d 17443 Y
{_X1&&>8/ *Qwhi&k 5、选择上述语句中反馈中最大值,本例中最大值为17443 Y。运行下列语句更新,
b=
ec?n #7 update projwbs set proj_node_flag = 'N' where wbs_id ='17340' //17340是上一条语句查询反馈结果中WBS_id最大值。
*rFbehf H 执行完了结果应该为:
FjLv*K[#d (所影响的行数为 1 行)
E4aCGg (所影响的行数为 1 行)
2#A9D.- h sS2E8Z2 6、关闭SQL工具;
Qnb?hvb"d }~~^ZtJ\ 7、重新登录PM。
G@<lwnvD*J