tAccLimitPoUpdateWrapper.eq("oper_id", operid).set("opt_day_limit", remain1);什么意思
时间: 2023-07-19 22:47:40 浏览: 42
这段代码是在使用MyBatis-Plus框架的条件构造器(QueryWrapper或UpdateWrapper)中,根据"oper_id"字段的值等于"operid"的记录,将"opt_day_limit"字段的值更新为"remain1"。其中,".eq()"表示等于条件,".set()"表示更新操作。
相关问题
INNER JOIN bns_pm_operation oper ON t.WorkUser_Barcode = oper.WorkUser_BarCode OR t.WorkUser_Barcode = oper.WorkUser_RandomBarCode这一部分有什么优化建议
对于这部分的优化建议,可以考虑以下几点:
1. 考虑为 `bns_pm_operation` 表的 `WorkUser_BarCode` 和 `WorkUser_RandomBarCode` 字段创建索引,以加快连接和查询速度。
2. 如果可能,可以将 `OR` 条件拆分为两个独立的 `JOIN` 子句,并使用 `UNION` 运算符将结果合并。例如:
```
SELECT ...
FROM bns_qm_operationtest_t t
INNER JOIN bns_pm_operation oper1 ON t.WorkUser_Barcode = oper1.WorkUser_BarCode
UNION
SELECT ...
FROM bns_qm_operationtest_t t
INNER JOIN bns_pm_operation oper2 ON t.WorkUser_Barcode = oper2.WorkUser_RandomBarCode
```
这样可以避免在 `JOIN` 条件中使用 `OR` 运算符,提高查询性能。
3. 如果数据量较小,并且没有明确的性能问题,可以不进行额外的优化。在某些情况下,数据库优化可能会增加复杂性并带来较小的性能提升。
总之,具体的优化策略需要根据实际情况和性能测试结果进行评估和调整,以达到最佳的查询性能。
CREATE TRIGGER update_invoice_complex AFTER UPDATE ON t_sfi_inter_invoice FOR EACH ROW BEGIN INSERT INTO t_sfi_inter_bus_complex (OPER_TIME, OPERATION_TYPE, OLD_OBJECT,NEW_OBJECT) VALUES (NOW(), 'update',JSON_OBJECT(OLD.ID,OLD_OINVOICE_NO,OLD.SUM,OLD.FACT_SUM,OLD.STATUS,OLD.BUSINESS_ID,OLD.REINVOICE,OLD.IS_PRINTED,OLD.PRINT_USER_ID,OLD.PRINT_USER_NAME,OLD.PRINT_DATE,OLD.INVOICE_TYPE,OLD.INVOICE_STATUS,OLD.TOMB_CERTIFICATE),JSON_OBJECT(NEW.ID,OINVOICE_NO,NEW.SUM,NEW.FACT_SUM,NEW.STATUS,NEW.BUSINESS_ID,NEW.REINVOICE,NEW.IS_PRINTED,NEW.PRINT_USER_ID,NEW.PRINT_USER_NAME,NEW.PRINT_DATE,NEW.INVOICE_TYPE,NEW.INVOICE_STATUS,NEW.TOMB_CERTIFICATE)); END;优化一下
可以尝试将触发器中的JSON_OBJECT函数拆分成单独的变量,以提高可读性和易维护性。同时,将INSERT语句中的字段名改为明确的列名,而不是使用通配符。建议修改后的触发器代码如下:
```
CREATE TRIGGER update_invoice_complex
AFTER UPDATE ON t_sfi_inter_invoice
FOR EACH ROW
BEGIN
DECLARE old_invoice_json JSON;
DECLARE new_invoice_json JSON;
SET old_invoice_json = JSON_OBJECT('id', OLD.ID,
'oinvoice_no', OLD.OINVOICE_NO,
'sum', OLD.SUM,
'fact_sum', OLD.FACT_SUM,
'status', OLD.STATUS,
'business_id', OLD.BUSINESS_ID,
'reinvoice', OLD.REINVOICE,
'is_printed', OLD.IS_PRINTED,
'print_user_id', OLD.PRINT_USER_ID,
'print_user_name', OLD.PRINT_USER_NAME,
'print_date', OLD.PRINT_DATE,
'invoice_type', OLD.INVOICE_TYPE,
'invoice_status', OLD.INVOICE_STATUS,
'tomb_certificate', OLD.TOMB_CERTIFICATE);
SET new_invoice_json = JSON_OBJECT('id', NEW.ID,
'oinvoice_no', NEW.OINVOICE_NO,
'sum', NEW.SUM,
'fact_sum', NEW.FACT_SUM,
'status', NEW.STATUS,
'business_id', NEW.BUSINESS_ID,
'reinvoice', NEW.REINVOICE,
'is_printed', NEW.IS_PRINTED,
'print_user_id', NEW.PRINT_USER_ID,
'print_user_name', NEW.PRINT_USER_NAME,
'print_date', NEW.PRINT_DATE,
'invoice_type', NEW.INVOICE_TYPE,
'invoice_status', NEW.INVOICE_STATUS,
'tomb_certificate', NEW.TOMB_CERTIFICATE);
INSERT INTO t_sfi_inter_bus_complex (OPER_TIME, OPERATION_TYPE, OLD_OBJECT, NEW_OBJECT)
VALUES (NOW(), 'update', old_invoice_json, new_invoice_json);
END;
```