DB2表被锁死,如何解锁

工作用的是DB2,在修改表结构,删除一个不用的字段的时候,发现再查询这个表发现报错,SQLState是57016,查询一下DB2的错误代码:因为表不活动,所以不能访问它(如果用的是DB2,尽量下载一份DB2的错误代码文档,对以后使用找问题非常有用)。

其实就是表被锁了,分析其实可能是DB2锁的机制,锁这方面我会找些东西补充学习一下。

下面是我执行的增加字段的语句,同样修改表添加字段,删除字段和修改字段这些都可能会导致表被锁,千万别重新建表,这样会把原先的数据搞没了。表如果被锁了,解锁这个表就好了。

ALTER TABLE table_name ADD COLUMN column_name column_type;
表被锁了就要解锁,执行解锁语句:
reorg table 表名

注意这要在DB2的命令行执行,我在DB2Visual工具命令行执行没用,我最后是在Xshell连接数据库,然后再执行上面这个语句才解锁了这张表。要注意在Xshell下面执行DB2的SQL语句要执行要在前面加db2.

重要的事情说三遍,在Xshell下面执行db2的sql语句,不管是连接数据库还是查询更新要在SQL语句前面加db2加db2加db2.

你可能感兴趣的:(DB2表被锁死,如何解锁)