Database 为什么Oracle数据库在按间隔创建分区时要求至少提供一个分区
我想知道为什么Oracle数据库在按范围间隔创建分区时要求至少定义一个分区 这是正确的:Database 为什么Oracle数据库在按间隔创建分区时要求至少提供一个分区,database,oracle,partitioning,database-partitioning,Database,Oracle,Partitioning,Database Partitioning,我想知道为什么Oracle数据库在按范围间隔创建分区时要求至少定义一个分区 这是正确的: 创建表FOO( 巴尔·瓦尔查尔2(10), 创建日期时间戳(6)不为空 ) 按范围划分(创建日期)间隔(NUMTODSINTERVAL(1,'DAY'))( 分区部分的值小于(截止日期('2018年3月1日,'DD-MM-YYYY')) ) 但这并不是: 创建表FOO( 巴尔·瓦尔查尔2(10), 创建日期时间戳(6)不为空 ) 按范围划分(创建日期)间隔(NUMTODSINTERVAL(1,'DAY'))
创建表FOO(
巴尔·瓦尔查尔2(10),
创建日期时间戳(6)不为空
)
按范围划分(创建日期)间隔(NUMTODSINTERVAL(1,'DAY'))(
分区部分的值小于(截止日期('2018年3月1日,'DD-MM-YYYY'))
)
但这并不是:
创建表FOO(
巴尔·瓦尔查尔2(10),
创建日期时间戳(6)不为空
)
按范围划分(创建日期)间隔(NUMTODSINTERVAL(1,'DAY'))
我希望在某些迁移情况下需要第一个分区,但在创建新表时不需要
Oracle关于此的文档:
CREATETABLE语句的INTERVAL子句为表建立间隔分区。必须使用partition子句指定至少一个范围分区。
如果没有默认间隔,Oracle不知道从何处开始间隔。对于每日分区,这不是很明显,但假设您每周有一个分区,即7天 是星期一、星期天还是别的什么
“1天”的间隔是什么意思?从00:00:00-23:59:59(如您的示例中所暗示的)或其他时间,例如12:00:00-11:59:59(这将是
分区部分\u 01值小于(截止日期('01-03-2018 12:00','DD-MM-yyyyyyh24:MI')
)投票决定转移到这一点可能会使您无法获得理由:如果您说我需要一周的假期;你很快就会得到这样的回答:从哪一天开始?不清楚你期望什么。如果对表进行分区,则无论何时(现在或将来)向表中添加数据,都必须将其转到分区。也许您会问“如果我不这样说的话,为什么默认情况下整个表不在一个分区中?”。这很好,但是分区必须有一个名称,这样才能引用它。你在哪里提供这个名字?