当前位置: 首页 > wzjs >正文

深圳做企业网站的公百度网址大全网站大全

深圳做企业网站的公,百度网址大全网站大全,辽宁省住房和城乡建设部网站,校园网站建设报价解决 PostgreSQL 检查约束引发的数据插入问题 一、问题描述 在将产品规格相关数据插入到 erp_product_specification 表时,程序抛出了异常。从日志中可以清晰地看到错误信息: org.springframework.dao.DataIntegrityViolationException: ### Error u…

解决 PostgreSQL 检查约束引发的数据插入问题

一、问题描述

在将产品规格相关数据插入到 erp_product_specification 表时,程序抛出了异常。从日志中可以清晰地看到错误信息:

org.springframework.dao.DataIntegrityViolationException: 
### Error updating database.  Cause: org.postgresql.util.PSQLException: ERROR: new row for relation "erp_product_specification" violates check constraint "erp_product_specification_applicable_product_type_check"
详细: Failing row contains (1915232443175804930, 袋装, reagent, 1, 1, 1, 2025-04-24 10:32:52.408734, 1, 2025-04-24 10:32:52.408734, 0, 0).
### The error may exist in cn/iocoder/module/erp/dal/mysql/productspecification/ProductSpecificationMapper.java (best guess)
### The error may involve cn.iocoder.module.erp.dal.mysql.productspecification.ProductSpecificationMapper.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO erp_product_specification (spec_id, spec_name, applicable_product_type, spec_type, remark, create_time, update_time, creator, updater ) VALUES (?,?,?,?,?,?,?,?,? )
### Cause: org.postgresql.util.PSQLException: ERROR: new row for relation "erp_product_specification" violates check constraint "erp_product_specification_applicable_product_type_check"
详细: Failing row contains (1915232443175804930, 袋装, reagent, 1, 1, 1, 2025-04-24 10:32:52.408734, 1, 2025-04-24 10:32:52.408734, 0, 0).
; ERROR: new row for relation "erp_product_specification" violates check constraint "erp_product_specification_applicable_product_type_check"
详细: Failing row contains (1915232443175804930, 袋装, reagent, 1, 1, 1, 2025-04-24 10:32:52.408734, 1, 2025-04-24 10:32:52.408734, 0, 0).

经进一步查看,发现该检查约束的定义为:

CHECK (((applicable_product_type)::text = ANY ((ARRAY['试剂'::character varying, '耗材'::character varying])::text[])))

这意味着 applicable_product_type 列的值只能是 '试剂' 或者 '耗材'。而我们在将输入框由字典选择改为手动输入后,可能输入了其他值,从而触发了约束异常。

二、问题排查

1. 确认约束定义

通过以下 SQL 语句查询约束的具体定义:

SELECT pg_get_constraintdef(oid) 
FROM pg_constraint 
WHERE conname = 'erp_product_specification_applicable_product_type_check';

确认了约束确实是限制 applicable_product_type 列取值范围的。

2. 分析业务需求变化

由于之前是字典选择,数据输入范围可控,符合约束条件。但改为手动输入后,没有及时调整约束或者在应用层添加相应验证,导致不符合约束条件的数据尝试插入。

三、解决方法

1. 删除检查约束(谨慎操作)

如果当前业务逻辑允许 applicable_product_type 列输入任意值,那么可以删除该检查约束。使用如下 SQL 语句:

ALTER TABLE erp_product_specification
DROP CONSTRAINT erp_product_specification_applicable_product_type_check;

在执行此操作前,务必备份相关表数据,因为删除约束后可能会导致不符合原始业务规则的数据进入数据库,影响数据完整性。

2. 应用层数据验证(推荐)

为了保证数据在满足新业务需求(手动输入)的同时,依然符合一定规则,可在应用层添加数据验证逻辑。例如在 Java 项目中,可以在接收用户输入的 Controller 层或者 Service 层对 applicable_product_type 的值进行判断,只允许符合业务要求的值进入后续的数据库操作流程。

http://www.dtcms.com/wzjs/457167.html

相关文章:

  • 网站打不开建设中哪的问题建站推广网站
  • wordpress主要标签想做seo哪里有培训的
  • 南京服装网站建设怎么在网上做网络营销
  • 建设网站的主要流程图电商推广
  • php网站建设培训关键词查询神器
  • 网站制作复杂吗合肥关键词排名提升
  • 内蒙古网站备案怎么做seo官网
  • 重庆网站seo太原seo排名外包
  • 网站页面设计合同百度超级链
  • 微信小程序注册后怎么使用seo 适合哪些行业
  • 高质量的合肥网站建设百度人工客服电话24小时
  • 企业网站建设框架seo查询平台
  • 杭州模板开发建站网络营销成功的原因
  • 网站建设与管理个人总结百度网址大全网站大全
  • 网站开发技术难点网络营销的概念及特点
  • 温州做网站seo关键词查询工具
  • 网站配色的原理和方法推广普通话手抄报句子
  • 小型网站开发可以投放广告的网站
  • 网站设计 加英文费用360竞价推广开户多少钱
  • 交互界面设计搜索引擎优化seo公司
  • 专门做艺术字的网站小红书外链管家
  • 建设工程网站单位名单网站的优化公司
  • 如何在自己做的网站中顶置内容怎样有效的做网上宣传
  • 怎么做推广赚钱网站seo关键词设置
  • 对网站做数据统计的目的是什么意思疫情最新消息
  • 网站开发逻辑图新产品怎样推广
  • 商贸公司的网站建设快速排名优化推广手机
  • flash网站链接怎么做百度推广登录平台怎么收费
  • 如何做旅游网站的旅行家百度网站快速优化
  • 毕设网站建设精准获客