Sql 用户中止了事务,然后尝试收集Teradata中表的统计信息
我试图通过以下方式收集表格中的统计数据:Sql 用户中止了事务,然后尝试收集Teradata中表的统计信息,sql,teradata,Sql,Teradata,我试图通过以下方式收集表格中的统计数据: COLLECT STATISTICS COLUMN (PURCHASE_ID) ON ONLINE_BANKING.TRANSACTIONs; SHOW TABLE ONLINE_BANKING.TRANSACTIONs; CREATE SET TABLE ONLINE_BANKING.TRANSACTIONs ,NO FALLBACK , NO BEFORE JOURNAL, NO AFTER JOURNAL,
COLLECT STATISTICS COLUMN (PURCHASE_ID) ON
ONLINE_BANKING.TRANSACTIONs;
SHOW TABLE ONLINE_BANKING.TRANSACTIONs;
CREATE SET TABLE ONLINE_BANKING.TRANSACTIONs ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
transaction_id INTEGER NOT NULL,
purchase_id INTEGER NOT NULL,
date_of_transaction DATE FORMAT 'YYYYMMDD' NOT NULL,
amount_of_transaction DECIMAL(38,2) NOT NULL,
transaction_type_code BYTEINT NOT NULL DEFAULT 25 )
UNIQUE PRIMARY INDEX ( transaction_id );
但是Teradata返回了这个错误:
用户[3110]中止了该事务
该表包含大约1200万行。我使用的是安装在虚拟机上的Teradata express edition 15.1。表是这样创建的:
COLLECT STATISTICS COLUMN (PURCHASE_ID) ON
ONLINE_BANKING.TRANSACTIONs;
SHOW TABLE ONLINE_BANKING.TRANSACTIONs;
CREATE SET TABLE ONLINE_BANKING.TRANSACTIONs ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
transaction_id INTEGER NOT NULL,
purchase_id INTEGER NOT NULL,
date_of_transaction DATE FORMAT 'YYYYMMDD' NOT NULL,
amount_of_transaction DECIMAL(38,2) NOT NULL,
transaction_type_code BYTEINT NOT NULL DEFAULT 25 )
UNIQUE PRIMARY INDEX ( transaction_id );
这里怎么了?我真的需要收集这些数据
upd1:似乎我使用的是Teradata语法(不是ansi)
根据我的经验,收到3110错误表明中止的事务是由用户发起的。如果在事务执行期间连接中断,则可能会遇到3110。会话的事务语义是什么?ANSI或Teradata。@Robballer似乎是Teradata