• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
平日
博客园    首页    新随笔    联系   管理    订阅  订阅
mvc+ef+oracle环境中报错:ORA-00001: 违反唯一约束条件

分析原因:

在oracle中,主健不能自动生成,不过可以通过“序列”来实现,如果是这样的话,问题很可能就出在“序列”上了;

ORACLE表主键ID突然从已经存在的ID值开始自动生成,导致违反主键唯一性约束;

先上个触发器:

TRIGGER LESEIL."RIGHT"
BEFORE INSERT ON LESEIL."RIGHT" FOR EACH ROW
DECLARE last_Sequence NUMBER;
    last_InsertID NUMBER;
BEGIN
    IF (:NEW."RIGHTID" IS NULL) THEN
        SELECT "Seq_RIGHTID".NEXTVAL INTO :NEW."RIGHTID" FROM DUAL;
    ELSE
        SELECT Last_Number-1 INTO last_Sequence FROM User_Sequences WHERE UPPER(Sequence_Name) = UPPER('Seq_RIGHTID');
        SELECT :NEW."RIGHTID" INTO last_InsertID FROM DUAL;
        WHILE (last_InsertID > last_Sequence) LOOP
            SELECT "Seq_RIGHTID".NEXTVAL INTO last_Sequence FROM DUAL;
        END LOOP;
    END IF;
END;

 

解决办法:

待解决!

posted on 2013-09-11 17:49  平日  阅读(1160)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3