2017-03-03 63 views
-2

任何人都可以幫助我在INFORMIX中的現有表上創建按片段(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; 
+3

你爲什麼要出門?另外,你有嘗試過什麼嗎?請看[ASK]和[MCVE]來改善您的問題。另外,爲什麼Oracle標籤? – Aleksej

回答

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子句,表將重建。確保你有足夠的磁盤空間(如果你的數據庫被記錄,這將是一個單一的事務,你可能會遇到一個長事務)。

+0

謝謝@luis。是否有可能我可以在不刪除約束和表的情況下對錶進行分段。 –