创建表 CREATE TABLE 的不兼容点

本文为您介绍迁移 MySQL 数据库的数据至 OceanBase 数据库 MySQL 租户时,MySQL 数据库执行的 CREATE TABLE DDL 支持被数据传输的 DDL 同步组件转换,但 OceanBase 数据库 MySQL 租户不支持执行的场景。

在生成列的基础上再定义生成列

通过 CREATE TABLE DDL 定义生成列时,表达式中使用了其它生成列。

  • MySQL 数据库:支持。

  • OceanBase 数据库 MySQL 租户:不支持。

示例如下:

CREATE TABLE group_by_t1 
(a INT GENERATED ALWAYS AS (1) VIRTUAL, 
 b INT GENERATED ALWAYS AS (a) VIRTUAL, 
 c INT GENERATED ALWAYS AS (1) VIRTUAL);

创建索引或约束

  • 创建约束时,MySQL 数据库和 OceanBase 数据库 MySQL 租户对于列的类型限制有所不同,详情请参见 创建索引或约束支持的字段类型

  • 创建外键约束的使用限制:

    • OceanBase 数据库 MySQL 租户:父表列需要存在 UNIQUE、PRIMARY 约束可以添加外键。

      父表列是指外键约束中指定的父表中的被引用列(referenced column)。

    • MySQL 数据库:父表列需要存在任意一种 UNIQUE、PRIMARY、普通键约束可以添加外键。