Doris执行update报错

Viewed 42

执行这个update时报错Column 'collection_agency_id' specified twice,具体是什么意思?这列的定义我查了下也没什么问题。

求教

UPDATE `prd_dw_vxlink`.`doris_tc_case_transcation`
  SET `max_overdue_days` = '111', `max_overdue_month` = '222'  WHERE `case_trans_id` = '444' AND `case_code` = '333'

日志

2024-07-15 16:18:03,205 WARN (mysql-nio-pool-32887|3023943) [StmtExecutor.executeByLegacy():882] execute Exception. stmt[3473013, 9733f75e705a44d2-83169e5f6e376c03]
org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = Column 'collection_agency_id' specified twice
	at org.apache.doris.common.ErrorReport.reportAnalysisException(ErrorReport.java:53) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.common.ErrorReport.reportAnalysisException(ErrorReport.java:48) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.analysis.NativeInsertStmt.analyzeSubquery(NativeInsertStmt.java:569) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.analysis.NativeInsertStmt.analyze(NativeInsertStmt.java:369) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.StmtExecutor.analyzeAndGenerateQueryPlan(StmtExecutor.java:1214) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.StmtExecutor.analyze(StmtExecutor.java:1117) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:770) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:534) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:478) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.StmtExecutor.handleUpdateStmt(StmtExecutor.java:2541) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:844) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:531) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:478) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.ConnectProcessor.executeQuery(ConnectProcessor.java:265) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:183) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:176) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:205) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:258) ~[doris-fe.jar:1.2-SNAPSHOT]
	at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_402]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_402]
	at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_402]

表结构

Field	Type	Null	Key	Default	Extra
case_trans_id	VARCHAR(64)	No	true		
case_code	VARCHAR(64)	No	true		
bankinv_id	VARCHAR(64)	Yes	false		REPLACE
receivable_fee_batch_code	BIGINT	Yes	false		REPLACE
payment_type	VARCHAR(32)	Yes	false		REPLACE
payment_type_name	VARCHAR(32)	Yes	false		REPLACE
funds_recpt_time	DATETIME	Yes	false		REPLACE
operator_by	VARCHAR(64)	Yes	false		REPLACE
operator_org_by	VARCHAR(255)	Yes	false		REPLACE
collection_agency_id	VARCHAR(64)	Yes	false		REPLACE
created_by	VARCHAR(64)	No	false		REPLACE
created_date	DATETIME	No	false		REPLACE
last_modified_by	VARCHAR(64)	No	false		REPLACE
last_modified_date	DATETIME	No	false		REPLACE
org_by	VARCHAR(64)	No	false		REPLACE
owned_by	VARCHAR(64)	No	false		REPLACE
is_deleted	TINYINT	No	false		REPLACE
tenant_id	VARCHAR(64)	Yes	false		REPLACE
transaction_type	VARCHAR(64)	Yes	false		REPLACE
transaction_code	VARCHAR(64)	No	false		REPLACE
transaction_desc	VARCHAR(64)	No	false		REPLACE
business_time	DATETIME	Yes	false		REPLACE
total_amt	DECIMAL(24, 6)	Yes	false		REPLACE
principal_amt	DECIMAL(24, 6)	No	false		REPLACE
interest_amt	DECIMAL(24, 6)	No	false		REPLACE
fee_amt	DECIMAL(24, 6)	No	false		REPLACE
govcost_amt	DECIMAL(24, 6)	No	false		REPLACE
other_amt	DECIMAL(24, 6)	Yes	false	0	REPLACE
others	VARCHAR(1024)	Yes	false		REPLACE
out_ref_id	BIGINT	Yes	false		REPLACE
workflow	BIGINT	Yes	false		REPLACE
inner_ref_id	BIGINT	Yes	false		REPLACE
match_type	VARCHAR(64)	Yes	false		REPLACE
match_type_name	VARCHAR(32)	Yes	false		REPLACE
checkin_time	DATETIME	Yes	false		REPLACE
has_credit_report	VARCHAR(64)	Yes	false		REPLACE
transaction_status	VARCHAR(64)	Yes	false		REPLACE
remark	VARCHAR(1024)	Yes	false		REPLACE
report_credit_status	VARCHAR(64)	Yes	false		REPLACE
report_credit_date	DATETIME	Yes	false		REPLACE
credit_report_code	VARCHAR(255)	Yes	false		REPLACE
uuid	VARCHAR(64)	Yes	false		REPLACE
has_settle	VARCHAR(64)	Yes	false		REPLACE
asset_id	BIGINT	Yes	false		REPLACE
cust_id	BIGINT	Yes	false		REPLACE
contract_code	VARCHAR(255)	Yes	false		REPLACE
max_overdue_days	BIGINT	Yes	false		REPLACE
max_overdue_month	BIGINT	Yes	false		REPLACE
1 Answers

前面是warn日志,是原来有这个操作:

`alter table prd_dw_vxlink.doris_tc_case_transcation rename COLUMN `collection_agency_id ` collection_agency_id;`

用户新建表之后,没有问题了