为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:### 这个怎么处理 我是通过程序插入
ProReadLog readLog = new ProReadLog();
readLog.setTargetid(nodeBasic.getId());
readLog.setUserid(user.getId());
readLogMapper.insert(readLog);
需要怎么处理
; 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值; nested exception is dm.jdbc.driver.DMException: 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值
语法格式
SET IDENTITY_INSERT [<模式名>.]<表名> ON | OFF;
这个问题有没有统一的解决方法。。不能每次在插入数据时都打开关闭吧。。
你这是往自增列插入数据了
1.IDENTITY_INSERT 属性的默认值为 OFF。SET IDENTITY_INSERT 的设置是在
执行或运行时进行的。当一个连接结束,IDENTITY_INSERT 属性将被自动还原为 OFF;
2.DM 要求一个会话连接中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON,
当设置一个新的表 IDENTITY_INSERT 属性设置为 ON 时,之前已经设置为 ON 的表会自
动还原为 OFF。当一个表的 IDENTITY_INSERT 属性被设置为 ON 时,该表中的自动增量
列的值由用户指定。如果插入值大于表的当前标识值(自增列当前值),则 DM 自动将新插入
值作为当前标识值使用,即改变该表的自增列当前值;否则,将不影响该自增列当前值;
3.当设置一个表的 IDENTITY_INSERT 属性为 OFF 时,新插入行中自增列的当前值
由系统自动生成,用户将无法指定;
4.自增列一经插入,无法修改;
5.手动插入自增列,除了将 IDENTITY_INSERT 设置为 ON,还要求在插入列表中明
确指定待插入的自增列列名。插入方式与非 IDENTITY 表是完全一样的。如果插入时,既
不指定自增列名也不给自增列赋值,则新插入行中自增列的当前值由系统自动生成