二次上线之后台底表更新料号(后果)
情形:1w多个料号导入系统,通过interface导入,但是整理时错位,导致料号和描述对不上。
解决方法:后台底表直接修改msib表的segment1栏位
后果:发现前台标准界面无法修改此料号属性,保存报错,经查标准代码发现
ENI_OLTP_ITEM_STAR这个table记录了料号和组织代码的组合值,插入和更新时
会同时记录到此表中,修改时因为此表的唯一索引导致不能修改
解决方法:
UPDATE ENI_OLTP_ITEM_STAR EOS
SET EOS.VALUE = (SELECT MSIB.SEGMENT1 || ' (1ZM)' FROM MTL_SYSTEM_ITEMS_B MSIB WHERE MSIB.INVENTORY_ITEM_ID = EOS.INVENTORY_ITEM_ID
AND MSIB.ORGANIZATION_ID = EOS.ORGANIZATION_ID
AND MSIB.ORGANIZATION_ID = 118)
WHERE (EOS.INVENTORY_ITEM_ID,EOS.ORGANIZATION_ID)
IN (SELECT MSIB1.INVENTORY_ITEM_ID,MSIB1.ORGANIZATION_ID FROM MTL_SYSTEM_ITEMS_B MSIB1 WHERE MSIB1.ORGANIZATION_ID = 118)
直接修改标准表的值栏位和msib表相同,这样就可以修改标准前台界面的属性了。
用如下代码可以查看这两个table中有哪些料号是不等的
SELECT MSIB.SEGMENT1,U.VALUE FROM MTL_SYSTEM_ITEMS_B MSIB,ENI_OLTP_ITEM_STAR U WHERE MSIB.ORGANIZATION_ID IN (112)
AND MSIB.ORGANIZATION_ID = U.ORGANIZATION_ID
AND MSIB.INVENTORY_ITEM_ID = U.INVENTORY_ITEM_ID
AND MSIB.SEGMENT1 <> SUBSTR(U.VALUE,1,14)
and msib.segment1 in ('N4DA-740553-00','Y5PK-740514-00')
虽然目前属性可以改了,但是你会发现一个问题:
以前的主org1 这个料号inventory_item_id = 1
现在的主org2 相同的料号inventory_item_id = 2
因为org2导入的时候,料号与org1的料号相同,后来底表直接修改segment1导致现在料号相同,inventory_item_id不同
目前好像是没发现什么问题,但是为保险起见,我把料号全部删除,重新导入
导入后发现,料号相同,主org不同,inventory_item_id也是相同的,这样就确保没有问题。
结论:不要用底表更改msib的segment1的值,要改也要前台修改,profile:可更新物料名 = Y
二次上线之后台底表更新料号(后果)相关推荐
- Oracle\MS SQL Server的数据库多表关联更新UPDATE与多表更新
一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表 一.MS S ...
- sql跨表查询_跨表查询经常有,何为跨表更新?
有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊? 背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为 t_dept_members, ...
- 几种内表更新方式的性能比较
ABAP程序中,内表更新主要有以下程序中的三种更新方式.一是通过字段符.二是使用索引.三是循环中直接更新.据我观察,直接使用第三种方式的人占大多数,使用字段符与使用索引的人应该差不多.这三种方式实际性 ...
- sql跨表查询_跨表更新,看到自己写的SQL像个憨憨
有点 SQL 基础的朋友肯定听过 「跨表查询」,那啥是跨表更新啊? 背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为 t_dept_members, ...
- QPW 系统管理后台用户表(tm_user_info)
文章目录 系统管理后台用户表 字段说明 系统管理后台用户表 CREATE TABLE `tm_user_info` (`user_id` int(11) NOT NULL AUTO_INCREMENT ...
- update和delete操作忘加where条件导致全表更新的处理方法
在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者D ...
- python-flask(二)集成bootstrap、集成web表单、集成邮件发送
文章目录 一.flask集成bootstrap 1. 什么是Bootstrap? 2. Flask中如何集成Bootstrap? 3. Flask-Bootstrap实现了什么? 二.Flask中集成 ...
- form表单提交后台获取表单信息
一.需求 客户端通过前端填写表单信息,后台获取表单信息进行相应处理. 二.工具 前端采用jsp,后台 springmvc 三.示例 (一).前端输入的form表单代码 <form id=&quo ...
- 如何规避MyBatis使用过程中带来的全表更新风险
作者:京东零售 贾玉西 一.前言 程序员A: MyBatis用过吧? 程序员B: 用过 程序员A: 好巧,我也用过,那你遇到过什么风险没?比如全表数据被更新或者删除了. 程序员B: 咔,还没遇到过,这 ...
最新文章
- 人工智能的发展,需要遵守的四个AI伦理原则
- 文件上传服务器jvm调优,JVM性能调优解决方案(12页)-原创力文档
- Java的语法格式是什么?有哪些需要注意?
- ITK:Sobel边缘检测图像滤镜
- mysql alert on delete cascade_如何在mysql中删除级联使用?(How do I use on delete cascade in mysql?)...
- 设计java application程序_下面哪些步骤是Java Application程序的建立及运行的步骤( )...
- mysql space id_MySQL8.0新特性:增加系统文件追踪space ID和物理文件的映射-阿里云开发者社区...
- 通过CentOS克隆虚拟机后发现无法启动网卡或无法上网的解决办法
- 数值分析(6)-函数逼近的基本概念
- android转场动画的两种方式
- 樊登读书会掌控读后感_樊登读书会观后感
- 从数学角度看基金定投
- 使用es6模块化出现Access to script at 'file:///... ..from origin 'null' has been blocked。。。错误
- 【介绍】全球最大黑客组织:匿名者
- cannot be resolved to a type 错误解决
- AC6969A 双声道蓝牙芯片 经典蓝牙5.3 纯蓝牙
- 【xla】五、【构图阶段】xlaCompileOp
- springboot萌宠宠物网店的开发与设计 毕业设计-附源码011042
- Mac 系统不兼容移动硬盘无法识别怎么办
- Java 求解岛屿数量