创建关系表

本文为您介绍迁移 Oracle 数据库的数据至 OceanBase 数据库 Oracle 租户时,CREATE TABLE DDL 创建关系表的支持转换范围。

总览

relational_table:
[ (relational_properties) ]
[ immutable_table_clauses ][ blockchain_table_clauses ][ DEFAULT COLLATION collation_name ]
[ ON COMMIT { DROP | PRESERVE } DEFINITION ][ ON COMMIT { DELETE | PRESERVE } ROWS ]
[ physical_properties ]
[ table_properties ]

immutable_table_clauses:
[ immutable_table_no_drop_clause ]
    [ immutable_table_no_delete_clause ]
    
immutable_table_no_drop_clause:
NO DROP [ UNTIL integer DAYS IDLE ]

immutable_table_no_delete_clause:
NO DELETE ( [ LOCKED ] | ( UNTIL integer DAYS AFTER INSERT [LOCKED] ) )

支持的范围

  • 支持 relational_properties 关系表列定义,详情请参见 关系表列定义

  • table_properties 仅支持创建分区,详情请参见 创建分区

忽略的属性

说明

如果同步的 DDL 中包含以下属性的定义,则这些属性不会被解析和转换,最终会被忽略。

  • 不支持 immutable_table_clauses 子句定义不可变表的删除时间,会忽略该 option。

  • 不支持 blockchain_table_clauses 子句定义区块链表的空闲保留时间、必须处于活动状态的天数,会忽略该 option。

  • 不支持设置默认排序规则 DEFAULT COLLATION collation_name 子句,会忽略该 option。

  • 不支持 ON COMMIT DROP DEFINITION 来定义事务级私有临时表和 ON COMMIT PRESERVE DEFINITION 来定义会话级全局临时表,会忽略该 option。示例如下:

    CREATE PRIVATE temporary TABLE PTT_tab1(a number) ON COMMIT DROP DEFINITION;
    CREATE PRIVATE temporary TABLE PTT_tab1(a number) ON COMMIT PRESERVE DEFINITION;