任何人都可以帮我在INFORMIX中的现有表格上创建FRAGMENT BY RANGE(GENERATED_DATE)吗?
我试过,但我不能
ALTER FRAGMENT ON TABLE neura_biahmis_prod.episode_service_rendered_tbl INIT
FRAGMENT BY RANGE(GENERATED_DATE)
INTERVAL (NUMTOYMINTERVAL(6,'MONTH'))
PARTITION Q1_EPSIODE_SERVICES VALUES > DATE('2016-01-01') AND VALUES <= DATE('2016-06-01') IN datadbs1,
PARTITION Q2_EPSIODE_SERVICES VALUES > DATE('2016-06-01') AND VALUES <= DATE('2016-12-01') IN datadbs2,
PARTITION Q3_EPSIODE_SERVICES VALUES > DATE('2016-12-01') AND VALUES <= DATE('2017-01-01') IN datadbs3;
答案 0 :(得分:0)
PARTITION
子句只能包含1个不等式运算符,即较小的运算符(<
)。
根据手册(FRAGMENT BY clause):
.-,-----------------------------------------------------------.
V |
>----PARTITION--partition--+-VALUES < range_expr-+--IN--dbspace-+--|
| (2) |
'-------VALUES IS NULL-'
所以你必须将你的分区条款更改为:
PARTITION Q1_EPISODE_SERVICES VALUES < DATE('2016-07-01') IN datadbs1,
PARTITION Q2_EPISODE_SERVICES VALUES < DATE('2017-01-01') IN datadbs2,
PARTITION Q3_EPISODE_SERVICES VALUES < DATE('2017-07-01') IN datadbs3;
请注意,使用INIT
子句,表将重建。确保你有足够的磁盘空间(如果你的数据库被记录,这将是一个单独的事务,你可能会遇到一个长事务。)