当我尝试在infiniDB上运行'Create Table'sql'时,出现以下错误:
“错误代码:122 IDB-2010:由于会话无法执行DDL / DML 26目前正在更新另一张表。“
Create Table sql没什么特别的,它是这样的:
CREATE TABLE table_name
(
col_1 smallint,
col_2 bigint,
create_date datetime
) ENGINE = InfiniDB DEFAULT CHARSET=utf8;
为什么会出现此错误?
答案 0 :(得分:2)
这是因为InfiniDB使用表锁定模型(至少对于导入作业),因此一次只能在表上运行一次修改。
在您的情况下,可能有一个当前正在运行的作业或一个已崩溃的作业。如果即cpimport段错误,这可以开启。无论如何,使用以下命令检查锁定状态:
root@big1:~# /usr/local/Calpont/bin/viewtablelock
There is 1 table lock
Table LockID Process PID Session Txn CreationTime State DBRoots
mydb.stats_test 4673 cpimport 20855 BulkLoad n/a Wed Feb 18 11:48:04 2015 LOADING 1,2,3,4,5
如果你确定这个过程不再运行,你可以杀死并清理它:
/usr/local/Calpont/bin/cleartablelock 4673