Java + MySQL完整性违规处理

Java + MySQL完整性违规处理,第1张

Java + MySQL完整性违规处理

实际上,实际上有两种方法可以实现此目的:

  1. 在同一事务内插入-之前测试记录是否存在。

  2. 根据SQL规范

    SQLException#getSQLState()
    ,确定捕获到的
    SQLException
    开头
    23
    是否违反约束。也就是说,它可能是由比“仅”违反约束更多的因素引起的。您不应将所有内容都修改为约束违例。
    SQLException

    public static boolean isConstraintViolation(SQLException e) {return e.getSQLState().startsWith("23");

    }

我选择第一个,因为它在语义上更正确。实际上,这不是例外情况。您即 知道
它可能会发生。但是,在繁重的并发环境中,如果事务未同步(可能不知不觉或无法优化性能),则可能会失败。然后,您可能想确定异常。

就是说,通常您不应该在 主键 上遇到约束冲突。在设计良好的数据模型中,它使用技术密钥作为主密钥,它们通常由数据库本身进行管理。该字段不是
唯一的键 吗?



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5033202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存