用户资产表主键更新

故障现象:。在更新用户资产表的主键的时候,数据库存储过程抛出错误:

ORA-02292: 违反完整约束条件(OSS01.CNST_USER_MAIL_BINDING_FK) - 已找到子记录


故障分析:表的普通列更新在关系型数据库是正常现象,只会有两种结果:a、更新成功,b、更新不到记录。而表主键更新是关系型数据库的大忌,会产生很多问题。Oracle是明文不推荐这种操作的,如果应用确实有这方面的需求,需要关注如下几点:

1、  确认更新表是否被其他表进行外键关联。主从表结构,如果只更新主表,会报ORA-02292错误。正确的做法是,先更新从表,再更新主表。

2、  确认更新表的主键是否是表分区的值。如果使用了表的主键来进行分区,会报错误: ORA-14402: 更新分区关键字列将导致分区的更改。需要打开表的行迁移,使用命令:

Alter table XXX enable row movement;

注意:该语句会造成引用表XXX的对象(如存储过程、包、视图等)变为无效。执行完成后,最好执行一下utlrp.sql来编译无效的对象。

3、确认更新表是否会产生主键冲突的错误,代码要对更新语句进行索引冲突的错误捕捉。

 

修改方案:规避上面提到的三点问题。

1.项目 (projects) 字段名 数据类型 描述 project_id INT AUTO_INCREMENT 项目主键,自增 unit_name VARCHAR(255) 编制单位 project_name VARCHAR(255) 项目名称 house_asset VARCHAR(255) 房屋资产 land_asset VARCHAR(255) 土地资产 franchise_asset VARCHAR(255) 特许经营资产 house_book_area DECIMAL(10, 2) 房屋资产账面面积(单位:平方米) house_rent_area DECIMAL(10, 2) 房屋资产出租面积(单位:平方米) house_idle_area DECIMAL(10, 2) 房屋资产闲置面积(单位:平方米) region VARCHAR(255) 所属区域 asset_location VARCHAR(255) 资产定位 remarks TEXT 备注 current_status VARCHAR(255) 使用现状 special_conditions TEXT 其他特殊情况 createtime DATETIME 创建时间,默认当前时间 updatetime DATETIME 更新时间,默认当前时间,更新时自动修改 2.房屋资产 (house_assets) 字段名称 数据类型 备注 house_asset_id INT AUTO_INCREMENT 房屋资产主键ID project_id INT 项目ID unit_name VARCHAR(255) NOT NULL 编制单位 asset_name VARCHAR(255) NOT NULL 资产名称 has_certificate BOOLEAN 是否有证书 rights_holder VARCHAR(255) 权利人 certificate_date DATE 发证日期 certificate_number VARCHAR(255) 证书号码 is_off_books BOOLEAN 是否账外资产 asset_type VARCHAR(255) 资产类型 asset_source VARCHAR(255) 资产来源 current_status VARCHAR(255) 使用现状 has_income BOOLEAN 是否产生收益 rental_guideline DECIMAL(10, 2) 租赁指导价 asset_value DECIMAL(15, 2) 资产 certificate_area DECIMAL(10, 2) 产证面积 book_area DECIMAL(10, 2) 账面面积 rent_area DECIMAL(10, 2) 出租面积 lend_area DECIMAL(10, 2) 出借面积 self_use_area DECIMAL(10, 2) 自用面积 other_area DECIMAL(10, 2) 其他面积 idle_area DECIMAL(10, 2) 闲置面积 remarks TEXT 备注 check_area DECIMAL(10, 2) 清查面积 check_date DATE 清查日期 change_reason TEXT 变动原因 community VARCHAR(255) 社区 createdtime DATETIME 创建时间(默认当前时间) updatedtime DATETIME 更新时间(默认当前时间,更新时自动更改) other_id INT 对方ID FOREIGN KEY 外键约束,关联projects的project_id 3.土地资产 (land_assets) 字段名称 数据类型 备注 land_asset_id INT AUTO_INCREMENT 土地资产主键ID project_id INT (外键,关联项目) unit_name VARCHAR(255) 编制单位 asset_name VARCHAR(255) NOT NULL 资产名称 has_certificate BOOLEAN 是否有证书 certificate_holder VARCHAR(255) 持证人 certificate_date DATE 发证日期 certificate_number VARCHAR(255) 证书号码 marked_area DECIMAL(10, 2) 载明面积 land_nature VARCHAR(255) 土地性质 land_source VARCHAR(255) 土地来源 acquisition_date DATE 取得时间 location VARCHAR(255) 坐落位置 is_off_books BOOLEAN 是否账外资产 has_income BOOLEAN 是否产生收益 usage_status VARCHAR(255) 使用情况 asset_value DECIMAL(15, 2) 资产 book_area DECIMAL(10, 2) 账面面积 rent_area DECIMAL(10, 2) 出租面积 lend_area DECIMAL(10, 2) 出借面积 self_use_area DECIMAL(10, 2) 自用面积 other_area DECIMAL(10, 2) 其他面积 idle_area DECIMAL(10, 2) 闲置面积 existing_issues TEXT 存在问题 rectification_status TEXT 整改情况 remarks TEXT 备注信息 check_area DECIMAL(10, 2) 清查面积 check_date DATE 清查时间 change_reason TEXT 变动原因 createdtime DATETIME 创建时间(默认当前时间) updatedtime DATETIME 更新时间(默认当前时间,更新时自动更改) 4.特许经营资产 (franchise_assets) 字段名称 数据类型 备注 franchise_asset_id INT AUTO_INCREMENT 特许经营资产主键ID,唯一标识每条记录 project_id INT 关联项目的项目ID(外键,关联项目) contract_id INT 合同主键(关联合同) franchise_name VARCHAR(255) 特许经营项目名称 franchise_category VARCHAR(255) 特许经营类别 franchise_scope VARCHAR(255) 特许经营规模及范围 governing_department VARCHAR(255) 主管部门 is_transferred BOOLEAN 是否已出让(为TRUE示已出让,FALSE示未出让) transferable_services TEXT 可出让特许经营服务项目(具体说明可转让的服务项目) is_transferable BOOLEAN 是否具备出让条件(为TRUE示具备出让条件,FALSE示不具备) reasons_for_non_transferable TEXT 不具备出让条件的原因(描述具体原因) estimated_annual_revenue_1 DECIMAL(15, 2) 出让预计年收益项目1(具体描述) estimated_annual_revenue_2 DECIMAL(15, 2) 出让预计年收益项目2 estimated_annual_revenue_3 DECIMAL(15, 2) 出让预计年收益项目3 estimated_annual_revenue_4 DECIMAL(15, 2) 出让预计年收益项目4 estimated_annual_revenue_total DECIMAL(15, 2) 出让预计年收益合计(四个项目的合计) operating_entity VARCHAR(255) 经营主体 entity_type VARCHAR(255) 经营主体性质(描述经营主体是企业、个体等类型) license_period INT 特许经营期许可协议年限(特许经营许可的有效年限) transfer_method VARCHAR(255) 特许经营出让方式(例如:拍卖、协议转让等) authorization_unit VARCHAR(255) 授权单位(特许经营授权的单位名称) start_date DATE 起始日期(特许经营开始日期) end_date DATE 到期时间(特许经营结束日期) pricing_basis VARCHAR(255) 定价依据(例如:市场价、政府规定价格等) fee_standard DECIMAL(10, 2) 特许经营权使用费金额标准(按金额计费的标准) fee_frequency VARCHAR(255) 特许经营权使用费频次(例如:每年、每月等) outstanding_fees DECIMAL(15, 2) 应收未收使用费金额(尚未支付的费用金额) government_subsidy DECIMAL(15, 2) 政府补贴金额每年(每年获得的政府补贴金额) issues TEXT 存在问题(描述当前在执行过程中遇到的问题) rectification_status TEXT 整改情况(描述是否需要整改以及整改的进展) remarks_time TIMESTAMP 备注时间(记录备注的时间) current_status VARCHAR(255) 使用现状(描述特许经营当前的使用状态) createdtime DATETIME 创建时间(默认当前时间) updatedtime DATETIME 更新时间(默认当前时间,更新时自动更改) 5.承租方 (lessees) 字段名称 数据类型 备注 lessee_id INT AUTO_INCREMENT 承租方主键ID unit_name VARCHAR(255) 编制单位 lessee_name VARCHAR(255) 名称 lessee_type VARCHAR(255) 类型 contact_person VARCHAR(255) 企业联系人 contact_phone VARCHAR(255) 联系人手机号 tax_number VARCHAR(255) 税号 electricity_usage DECIMAL(10, 2) 用电量,租户的电力消耗(单位:kWh) water_usage DECIMAL(10, 2) 用水量,租户的水消耗(单位:立方米) photovoltaic_usage DECIMAL(10, 2) 光伏供电量,租户使用的光伏电力(单位:kWh) storage_usage DECIMAL(10, 2) 储能供电量,租户使用的储能电力(单位:kWh) payment_details TEXT 缴费详情 energy_efficiency DECIMAL(10, 2) 节能效率 createdtime DATETIME 创建时间(默认当前时间) updatedtime DATETIME 更新时间(默认当前时间,更新时自动更改) 6.合同contracts 字段名称 数据类型 备注 contract_id INT AUTO_INCREMENT 合同主键ID,唯一标识每条合同记录 unit_name VARCHAR(255) 编制单位 asset_type VARCHAR(255) 资产类型 lease_info TEXT 租赁信息 lease_area DECIMAL(10, 2) 租赁面积 lessee_name VARCHAR(255) 承租方 deposit DECIMAL(10, 2) 押金 first_rent DECIMAL(10, 2) 首期租金 total_rent DECIMAL(10, 2) 租金总额 lease_start_date DATE 租赁起始时间 lease_end_date DATE 租赁结束时间 rent_payment_cycle VARCHAR(255) 租金支付周期 rent_free_months INT 免租月数 status VARCHAR(255) 状态 contract_type VARCHAR(255) 合同类型(示房屋合同、土地合同或特许经营合同) termination_date DATE 退租日期 remarks TEXT 备注信息,关于合同的其他补充说明或备注 other_id INT 对方ID advance_payment_days INT 约定提前支付天数 createdtime DATETIME 创建时间(默认当前时间) updatedtime DATETIME 更新时间(默认当前时间,更新时自动更改) 7.附件 attachments 字段名称 数据类型 备注 attachment_id INT AUTO_INCREMENT 文件ID,唯一标识每个附件记录 project_id INT 关联项目的项目ID(外键,关联项目) contract_id INT 关联合同主键ID(外键,关联合同) unit_name VARCHAR(255) 编制单位,指提供或管理附件的单位名称 file_type VARCHAR(255) 类型(合同、图纸、照片等) file_name VARCHAR(255) 文件名,示附件文件的名称 file_size DECIMAL(15, 2) 文件大小,示附件文件的大小,单位为字节(可以有小数) file_extension VARCHAR(50) 文件类型,示附件文件的扩展名(如 .pdf, .jpg) last_modified_date DATETIME 文件最近修改日期,记录附件文件的最后修改时间 remarks TEXT 备注信息,记录附件文件的补充说明或附加信息 data_type VARCHAR(255) 对应数据类型,示附件所关联的数据类型(如合同、报告等) data_content TEXT 对应数据 (内容) regedit_path VARCHAR(255) 跳转路径 other_id INT 对方ID,示与该附件相关的另一方(如合同的对方、提供文件的单位等)的唯一标识 createdtime DATETIME 创建时间(默认当前时间) updatedtime DATETIME 更新时间(默认当前时间,更新时自动更改) 8使用情况asset_usage 字段名称 数据类型 备注 usage_id INT AUTO_INCREMENT 主键ID house_asset_id INT 房屋资产主键id (关联房屋资产) contract_id INT 合同主键id(关联合同) asset_type VARCHAR(50) 资产类型,区分房屋和土地(如 'house', 'land') name VARCHAR(255) 名称,资产使用情况的名称 land_asset_id INT 土地资产主键id(关联土地资产) area DECIMAL(10, 2) 面积,资产使用面积,单位为平方米 remarks TEXT 备注信息,记录资产使用情况的补充说明 other_id INT 对方ID,示与该资产相关的另一方(如租客等) usage_status VARCHAR(100) 使用现状,描述资产当前的使用状态(如已租、空置等) createdtime DATETIME 创建时间(默认当前时间) updatedtime DATETIME 更新时间(默认当前时间,更新时自动更改) 9 清查情况 asset_inventory 字段名称 数据类型 备注 Inventory_id INT AUTO_INCREMENT 主键ID asset_type VARCHAR(50) 资产类型,区分房屋资产和土地资产(如 'house', 'land') house_asset_id INT 房屋资产主键id (关联房屋资产) land_asset_id INT 土地资产主键id(关联土地资产) check_area DECIMAL(10, 2) 清查面积,单位为平方米 check_date DATE 清查时间 change_reason TEXT 变动原因,描述清查中发现的资产变动原因 createdtime DATETIME 创建时间(默认当前时间) updatedtime DATETIME 更新时间(默认当前时间,更新时自动更改) 10.账单 bill 字段名称 数据类型 备注 bill_id INT AUTO_INCREMENT 账单主键id contract_id INT 关联租约, 合同主键ID(关联合同)展示合同lease_info(租赁信息) bill_type VARCHAR(100) 账单类型(如租金、物业费等) amount_due DECIMAL(10, 2) 应付金额 due_date DATE 应付时间,账单到期日期 status ENUM('未支付', '已支付', '部分支付') 状态,描述账单的支付情况 amount_paid DECIMAL(10, 2) 已付金额,实际已支付的金额 discount_amount DECIMAL(10, 2) 减免金额,账单中减免的金额 remaining_amount DECIMAL(10, 2) 剩余未付金额,剩余需要支付的金额 lease_id INT 承租方, 承租方主键id(关联承租方) 展示承租方的 lessee_name(名称) remarks TEXT 备注信息,记录账单的其他补充说明 11流水 payments 字段名称 数据类型 备注 payment_id INT 主键id bill_id INT 账单主键id(关联账单) payment_amount DECIMAL(15, 2) 支付金额,最多 15 位数字,保留 2 位小数。 payment_date DATE 支付日期,记录支付发生的日期。 payment_type VARCHAR(255) 支付方式,描述支付类型(如信用卡、现金、银行转账等),最大长度为 255 字符。 createdtime DATETIME 创建时间(默认当前时间) updatedtime DATETIME 更新时间(默认当前时间,更新时自动更改) 12 日志logs 字段名称 数据类型 备注 log_id INT AUTO_INCREMENT 主键,日志记录的唯一标识,自动递增。 operator VARCHAR(255) 操作人,记录执行操作的人员。 data_type VARCHAR(100) 数据类型(例如:账单、用户等)。 data_id INT 数据ID,记录被操作的数据的唯一标识。 operation_type VARCHAR(50) 操作类型(如:新增、删除、修改、查看等)。 changes TEXT 修改内容, 描述具体的操作内容或更改的详细信息。 remarks TEXT 备注, 记录补充信息或额外说明。 operation_time DATETIME 时间, 记录操作发生的时间。 ip_address VARCHAR(45) IP地址, 记录执行操作时的IP地址。 根据上述描述,创建mysql语句,并备注每个字段的注释
最新发布
05-29
基本功能模块 项目模块 操作有 详情、房屋资产、土地资产、特许经营资产、附件以及搜索功能。 展示的字段有(主键ID、编制单位、项目名称、房屋资产、土地资产、特许经营资产、房屋资产账面面积、房屋资产出租面积、房屋资产闲置面积、所属区域、资产定位、备注信息、使用现状、其他特殊情况) 点击详情 详情页面 基本信息字段有(项目主键ID、项目名称、土地资产、房屋资产账面面积、房租资产闲置面积、资产定位、其他特殊情况、编制单位、房屋资产、特许经营资产、房屋资产出租面积、所属区域、使用现状、备注信息) 点击房屋资产 跳转到房屋资产页面 点击土地资产 跳转到土地资产页面 点击特许经营 跳转到特许经营页面 点击附件 跳转到附件页面 字段有(文件ID、编制单位、类型、文件名、文件大小、文件类型、文件最近修改日期、备注信息、对应数据类型、对应数据、跳转路径、对方ID)。 资产管理模块 里面有房屋资产、土地资产、特许经营模块 房屋资产模块 操作有 详情、使用情况、清查情况 主要字段有(主键ID、编制单位、所属单位、运管单位、资产名称,是否有证书、权利人、发证日期、证书号码、是否为账外资产资产类型、资产来源、使用现状、是否产生收益、租赁指导价、资产、产证面积、账面面积、出租面积、出借面积、自用面积、其他面积、闲置面积、备注信息、清查面积、清查时间、变动原因、社区、对方ID) 点击房屋资产详情 主要字段有(房屋资产主键ID、所属单位、资产名称、权利人、证书号码、资产类型、使用现状、租赁指导价、产证面积、出租面积、自用面积、闲置面积、社区、编制单位、运管单位、是否有证书、发证日期、是否账外资产资产来源、是否产生收益、资产、账面面积、出借面积、其他面积、变动原因、对方ID) 点击使用情况 里面操作有合同 主要字段有(主键ID、名称、所属房屋资产、面积、备注信息、对方ID、使用现状)点击合同跳转到租赁管理模块中的房屋合同 点击清查情况 主要字段有(主键ID、所属房屋资产、清查面积、清查时间、变动原因) 土地资产模块 操作有 详情、使用情况、清查情况 主要字段有(土地资产主键ID、编制单位、资产名称、是否有证书、持证人、发证日期、证书号码、载明面积、土地性质、土地来源、取得时间、坐落位置、是否账外资产、是否产生收益、使用情况、使用现状、资产、账面面积、出租面积、出借面积、自用面积、其他面积、闲置面积、存在问题、整改情况、备注信息、清查面积、清查时间、变动原因) 土地资产详情页面主要字段有(土地资产主键ID、资产名称、持证人、证书号码、土地性质、取得时间、是否为账外资产、使用情况、资产、出租面积、自用面积、闲置面积、整改面积、编制单位、是否有证书、发证日期、载明面积、土地来源、坐落位置、是否产生收益、使用现状、账面面积、出借面积、其他面积、存在问题、变动原因、备注信息、清查面积、清查时间) 点击土地资产的使用情况主要字段有(主键ID、名称、所属土地资产、面积、备注信息、使用现状) 点击清查情况 主要字段有(主键ID、所属土地资产、清查面积、清查时间、变动原因) 特许经营模块 操作有详情、合同 主要字段有(特许经营的主键ID、编制单位、特许经营项目名称、特许经营类别、特许经营规模及范围、主管部门、是否已出让、可出让特许经营服务项目、是否具备出让条件、不具备出让条件的原因、出让预计年收益项目1、出让预计年收益项目2、出让预计年收益项目3、出让预计年收益项目4、出让预计年收益合计、经营主体、经营主体性质、特许经营期许可协议年限、特许经营出让方式、授权单位、起始日期、到期时间、定价依据、特许经营权使用费金额标准、特许经营权使用费频次、应收未收使用费金额、政府补贴金额每年、存在问题、整改情况、备注时间、使用现状)。 租赁管理模块 有承租方、房屋合同、土地合同、特许经营合同小模块 承租方主要字段有(主键ID、编制单位、名称、类型、企业联系人、联系人手机号、税号、用电量、用水量、光伏供电量、储能供电量、缴费详情、节能效率) 房屋合同模块 操作有 详情、账单、流水、附件、生成账单,主要字段有(主键ID、编制单位、资产类型、租赁信息、租赁面积、承租方、押金、首期租金、租金总额、租赁起始时间、租赁结束时间、租金支付周期、免租月数、状态、合同类型、退租日期、备注信息、对方ID) 点击详情主要字段有(主键ID、编制单位、资产类型、租赁信息、租赁面积、承租方、押金、首期租金、租金总额、租赁起始时间、租赁结束时间、租金支付周期、免租月数、状态、合同类型、退租日期、备注信息、对方ID、约定提前支付天数) 点击账单跳转到财务管理模块中的账单 点击流水跳转到财务管理模块中的流水 点击附件跳转到附件页面 操作有预览、和下载 主要字段有(主键ID、编制单位、类型、文件名、文件大小、文件类型、文件最近修改日期、备注信息、对应数据类型、对应数据、跳转路径、对方ID) 土地合同模块 操作有 详情、账单、流水、附件、生成账单 主要字段(主键ID、编制单位、资产类型、租赁信息、租赁面积、承租方、押金、首期租金、租金总额、租赁起始时间、租赁结束时间、租金支付周期、免租月数、状态、合同类型、退租日期、备注信息、对方ID) 点击详情主要字段有(主键ID、编制单位、资产类型、租赁信息、租赁面积、承租方、押金、首期租金、租金总额、租赁起始时间、租赁结束时间、租金支付周期、免租月数、状态、合同类型、退租日期、备注信息、对方ID、约定提前支付天数) 特许经营合同模块 操作有 详情、账单、流水、附件、生成账单主要字段(主键ID、编制单位、资产类型、租赁信息、租赁面积、承租方、押金、首期租金、租金总额、租赁起始时间、租赁结束时间、租金支付周期、免租月数、状态、合同类型、退租日期、备注信息、对方ID) 点击详情主要字段有(主键ID、编制单位、资产类型、租赁信息、租赁面积、承租方、押金、首期租金、租金总额、租赁起始时间、租赁结束时间、租金支付周期、免租月数、状态、合同类型、退租日期、备注信息、对方ID、约定提前支付天数) (房屋合同、土地合同、特许经营合同小模块字段一样)。 财务管理模块有 账单和流水模块 账单模块操作有 详情、流水, 详情的主要字段有 (主键ID、账单类型、应付金额、应付时间、状态、已付金额、减免金额、剩余未付金额、关联租约、承租方、备注信息) 流水主要字段有(主键ID、金额、支付日期、支付类型、账单ID) 流程管理模块 组织架构模块 日志 主要字段有(主键ID、操作人、数据类型、数据ID、操作类型、修改内容、备注、时间、IP地址) 设计上述的mysql数据库之间的外键,以及项目流程图
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值