zoukankan      html  css  js  c++  java
  • db2插入数据失败

    原文章:db2插入数据失败

    转载请注明出处: https://www.cnblogs.com/xiaoliangyuu/p/5982736.html

    使用db2,手动insert语句的时候,报如下错误:

    DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=2 。

         开始在网上找解决方法,以下网上的解决方法总结(事实上并没有解决我的问题):

    第一种解决:

    1、查了下,大概意思是违反了唯一性约束啊!
    2、不过,我db2 describe table XX后发现这个表只有ID是不能为空的啊!
    3、最后,直接写了条SQL在命令行执行,同样的错和代码
    最后,我查了下表的索引,发现建了个组合索引,才恍然大悟。
    原来,DBA昨天建了唯一性约束和索引导致的!
    虽然describe出来只有ID不能为空,但是加了唯一性约束和索引后导致不能插入数据。

    第二种解决:

    [BUG]:ERROR [23505] [IBM][DB2/AIX64] SQL0803N INSERT 语句、UPDATE 语句或由 DELETE 语句导致的外键更新中的一个或多个值无效,因为由 "2" 标识的主键、唯一约束或者唯一索引将表 "XXX" 的索引键限制为不能具有重复值。 SQLSTATE=23505
    今天在对数据库进行操作时一直报此问题,导致数据的某个表只能插入一条数据。略查了一下原来是违反了唯一约束。
    23505 发生由唯一索引或唯一约束强加的约束违例。

    违反了唯一约束,这时候应该看一下主键、索引等。后来发现是一个索引建成了Unique,即唯一索引,但是在插入数据的时候,这个唯一索引并没有赋值,均为空,所以报错。

    [解决方法:]将唯一索引更改成普通索引即可。

    我自己的解决方法:

    外键问题,先在其他表添加数据,再在该表添加数据。

  • 相关阅读:
    Raw图像格式
    Basler相机外部触发设置(Halcon)
    C# 丢弃串口缓冲区 Serialport.DiscardInBuffer,DiscardOutBuffer
    ASCII 码
    Xcopy 使用详解
    Qt 信息提示框QMessageBox用法
    Qt 调整图片大小适应QLabel
    C++取整
    Qt QTableView数据列宽度自适应, 横向填满表格
    Qt 事件总结(鼠标、键盘) QMouseEvent、QKeyEvent
  • 原文地址:https://www.cnblogs.com/xiaoliangyuu/p/5982736.html
Copyright © 2011-2022 走看看