This commit is contained in:
Daniel 2025-08-09 22:43:23 +08:00
parent 207eb6b086
commit 97684b411a
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -4310,20 +4310,24 @@ func updateAttributeViewValue(tx *Transaction, attrView *av.AttributeView, keyID
// val.IsDetached 只有更新主键的时候才会传入,所以下面需要结合 isUpdatingBlockKey 来判断
if oldIsDetached {
// 之前是游离行
if isUpdatingBlockKey {
if oldIsDetached {
// 之前是游离行
if !val.IsDetached { // 现在绑定了块
// 将游离行绑定到新建的块上
bindBlockAv(tx, avID, blockID)
if nil != val.Block {
val.BlockID = val.Block.ID
if !val.IsDetached { // 现在绑定了块
// 将游离行绑定到新建的块上
if val.Block.ID != blockID {
// 从其他库拷贝主键值后会出现该情况
blockID = val.Block.ID
val.BlockID = blockID
}
bindBlockAv(tx, avID, blockID)
}
}
} else {
// 之前绑定了块
} else {
// 之前绑定了块
if isUpdatingBlockKey { // 正在更新主键
if val.IsDetached { // 现在是游离行
// 将绑定的块从属性视图中移除
unbindBlockAv(tx, avID, blockID)