Operation not allowed for reason code "7" on table "DB2.XXX". SQLSTATE=5701
对表进行任何操作都不被允许,提示SQLSTATE=57016 SQLCODE=-668 ,原因码 "7"的错误:SQL0668N Operation not allowed for reason code "7" on table XXX. 解决方法为:执行命令:reorg table XXX;即可。
参考原文为:
Operation not allowed for reason code reason-code on table table-name.
Explanation: Access to table table-name is restricted. The cause is based on the following reason codes reason-code: 7
The table is in the reorg pending state. This can occur after an ALTER TABLE statement containing a REORG-recommended operation.7
Reorganize the table using the REORG TABLE command (note that INPLACE REORG TABLE is not allowed for a table that is in the reorg pending state).
其中:
reorg table <tablename> 通过重构行来消除“碎片”数据并压缩信息,对表进行重组。
runstats on table <tbschema>.<tbname> 收集表 <tbname> 的统计信息。
reorgchk on table all 确定是否需要对表进行重组,对于对所有表自动执行 runstats 很有用。
>>> reorg 和runstats 都是单个表优化,初始化的命令:
runstats on table administrator.test;
reorg table administrator.test;
转自:http://tting.iteye.com/blog/1555571
分享到:
相关推荐
select seq_customer_id.nextval from SEQ_TEST --插入数据 insert into test(nid,test1) values(seq_test.nextVal,'test1'); --创建触发器 CREATE OR REPLACE TRIGGER tg_test BEFORE INSERT ON test FOR EACH ...
select seq_link_id.nextval into:new.id from dual; end; --测试插入 insert into customerLink_table(customer_id,Link_Name,Sex,Job,Phone,Mobile,Memo) values ('KH071202015','tcy',2,'总经理','021-...
SELECT seq_test.nextval FROM dual; ``` DB2使用`nextval for seq_test`获取: ```sql VALUES NEXTVAL FOR seq_test; ``` 而在PostgreSQL中,使用`nextval(seq_test)`: ```sql SELECT nextval(seq_test); ``` 三...
String sql = "SELECT my_sequence.NEXTVAL FROM DUAL"; Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt....
SELECT TO_CHAR(SYSDATE,’YYMMDD’)||LPAD(REFUNDSEQ.NEXTVAL,6,’0′) AS RES_ORDER_NO FROM DUAL 该语句拼接 时间 与 LPAD产生的 ‘REFUNDSEQ.NEXTVAL值的前6位有字符,如果不足6位,就用0补足’ ,为防止出现...
SELECT * FROM mytable WHERE 1 = 1 ORDER BY id LIMIT startRow, pageSize ``` #### 八、db2函数迁移 ##### 8.1 日期类 ```sql -- DB2 CURRENT DATE ADD_MONTHS(date, n) -- MySQL NOW() DATE_ADD(date, INTERVAL...
INSERT INTO tab1 (col1, col2) VALUES (seq_2.NEXTVAL, seq_2.NEXTVAL); SELECT * FROM tab1; ``` 创建并填充一个表tab1,使用seq_2的下一个值插入两行数据。 ```sql ALTER SEQUENCE seq_2 RESTART WITH 5 ...
SELECT * FROM classes; -- 查询表 DROP TABLE students; -- 删除表 RENAME alist_table_copy TO alist_table; -- 重命名表 DESCRIBE test; -- 显示表结构 ``` 字段的操作包括增加、删除、改名和修改属性: ```sql...
SELECT SEQ_PRIMARY_KEY.NEXTVAL INTO :NEW.primary_key_column FROM DUAL; END; / ``` 这个触发器会在每次向`your_table`插入新行时,将`SEQ_PRIMARY_KEY`的下一个值赋给新记录的主键列。 3. 使用序列和存储...
SELECT testuser.ORDER_RECORD_id_seq.NEXTVAL INTO :NEW.id FROM DUAL; END; ``` 在向`ORDER_RECORD`表中插入数据之前,我们可以先统计一下表中的记录数量,以便确认后续的操作是否正确执行。 ```sql -- 插入前...
Select seq_t_xsjl.nextval into v_pk_no from dual; :new.pk_no := v_pk_no; End; 最后,创建一个视图: Create view vw_t_xsjl as select * from t_xsjl; 这样,表t_xsjl就增加了主键pk_no,而不需要修改任何...
### MySQL中的currval和nextval函数实现解析 #### 背景介绍 在数据库系统中,序列(Sequence)是一种常用的数据结构,它主要用于生成一系列连续的整数,这些整数通常用于自动生成主键或其他唯一标识符。MySQL本身并...
- 查看序列下一个值:`SELECT seq_on_test.nextval FROM dual;` **总结**: - 触发器方法更方便,因为它在插入时自动处理序列值的获取,无需在插入语句中显式调用序列。 - 显示调用序列则更直接,但需要在每次插入...
SELECT seq_on_test.nextval FROM dual; ``` 除此之外,序列还可以配合触发器使用,以实现更复杂的逻辑,比如在特定条件下生成主键。在高并发环境下,由于多线程并发访问,可能需要考虑行级锁的问题,以避免数据...
- 触发器通过`SELECT WFLog_LogId_SEQ.NEXTVAL INTO :NEW.LogId FROM DUAL;`语句为新的记录设置`LogId`字段的值。 2. **序列的使用**: - `WFLog_LogId_SEQ`是一个预先定义好的序列对象。 - 使用`NEXTVAL`获取...
select seq_employee_id.nextval into :new.employee_id from dual; end; ``` 这个触发器将在插入员工数据时自动分配员工编号。 Oracle 触发器是一种强大的工具,可以帮助我们实现复杂的业务逻辑,并且可以自动...
select LPAD(substr(SEQ_STA_10086_YWLX.NEXTVAL, -length(SEQ_STA_10086_YWLX.NEXTVAL)), 10, '0') ``` - **功能**:获取 `SEQ_STA_10086_YWLX` 序列的下一个值,并对结果进行格式化。 - **字段解释**: - `...
- `SELECT tuser_tb_seq.NEXTVAL INTO :new.userid FROM dual;`: 将序列的下一个值赋给新插入记录的`userid`字段。 通过这种方式,每当有新的记录插入`tuser`表时,触发器都会自动为其分配一个由`tuser_tb_seq`...