AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的。

Posted szsunny

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的。相关的知识,希望对你有一定的参考价值。

做测试的时候遇到一个情况“AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的。”

检查到该表(TABLE_ABC)所有的key都是AllowDuplicate的,

继续检查表属性发现 createdRecIdxIdx设置为Yes, 启用了RecId作为唯一键。

因此推测 应该是该表的recid 的nextvalue 数据不对了。

想办法刷新 recid .

在sql 后台

1. 计算 Table_ABC目前最大的RecId

  declare @maxRecId int64

  select @maxRecId = max(RECID) from SML_GITListReceived with(nolock)

2. 系统记录recId 的表SYSTEMSEQUENCES 

update SYSTEMSEQUENCES
set NEXTVAL = @maxRecId+10000
where tabID = 35223 //Table_ABC 的tableId

3, 此时必须重启AX的所有AOS,重新登录后问题解决

  

 

以上是关于AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的。的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 当记录不存在时插入(insert if not exists)

Mysql插入数据:不存在则插入,存在则跳过或更新

查询存在 Max(Date) 的记录

如何用SQL语句向一个表中插入多行记录

如何用SQL语句向一个表中插入多行记录

HSQLDB -Query - 如果不存在则插入第一条记录