全部產品
Search
文件中心

ApsaraDB for OceanBase:建立表 CREATE TABLE 的不相容點

更新時間:Jul 01, 2024

本文為您介紹遷移 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、普通鍵約束可以添加外鍵。