全部產品
Search
文件中心

ApsaraDB for OceanBase:建立列

更新時間:Jul 01, 2024

本文為您介紹遷移 MySQL 資料庫的資料至 OceanBase 資料庫 MySQL 租戶時,CREATE TABLE DDL 建立列的支援範圍。

文法總覽

create_definition: 
    col_name column_definition

column_definition: {
    data_type [NOT NULL | NULL] [DEFAULT {literal | (expr)} ]
      [VISIBLE | INVISIBLE]
      [AUTO_INCREMENT] [UNIQUE [KEY]] [[PRIMARY] KEY]
      [COMMENT 'string']
      [COLLATE collation_name]
      [COLUMN_FORMAT {FIXED | DYNAMIC | DEFAULT}]
      [ENGINE_ATTRIBUTE [=] 'string']
      [SECONDARY_ENGINE_ATTRIBUTE [=] 'string']
      [STORAGE {DISK | MEMORY}]
      [reference_definition]
      [check_constraint_definition]
  | data_type
      [COLLATE collation_name]
      [GENERATED ALWAYS] AS (expr)
      [VIRTUAL | STORED] [NOT NULL | NULL]
      [VISIBLE | INVISIBLE]
      [UNIQUE [KEY]] [[PRIMARY] KEY]
      [COMMENT 'string']
      [reference_definition]
      [check_constraint_definition]
}

支援的範圍

  • 資料類型的支援詳情請參見 資料類型轉換

  • 支援指定 NULL / NOT NULL 屬性。

  • 支援指定 DEFAULT 值:支援 DEFAULT 值為常量或函數。

  • 支援指定 VISIBLE / INVISIBLE 屬性。

  • 支援指定 AUTO_INCREMENT。

  • 支援指定 COMMENT。

  • 支援指定 COLLATE。

  • 支援指定產生列,支援產生列指定 VIRTUAL | STORED 屬性。

  • 支援指定 UNIQUE KEY / PRIMARY KEY / KEY,詳情請參見 建立索引或約束

  • 支援指定 CHECK 條件約束,詳情請參見 建立索引或約束

    重要

    僅 OCeanBase 資料庫 MySQL 租戶 3.2.3 及以上版本支援。

  • 支援指定外鍵,詳情請參見 建立索引或約束

忽略的屬性

說明

如果同步的 DDL 中包含以下屬性的定義,則這些屬性不會被解析和轉換,最終會被忽略。

  • 指定 COLUMN_FORMAT 屬性。

  • 指定 ENGINE_ATTRIBUTE 屬性。

  • 指定 SECONDARY_ENGINE_ATTRIBUTE 屬性。

  • 指定 STORAGE 屬性。

使用限制

重要

由於 OceanBase 資料庫 MySQL 租戶本身的限制,如果存在以下情境,同步的 DDL 被成功轉換後,執行到 OceanBase 資料庫 MySQL 租戶可能會報錯。

  • OceanBase 資料庫 MySQL 租戶不支援在 DEFAULT 中指定某些函數/運算式。

  • OceanBase 資料庫 MySQL 租戶不支援在產生列中指定某些函數/運算式。

  • OceanBase 資料庫 MySQL 租戶不支援某些欄位類型被指定 UNIQUE KEY / PRIMARY KEY / KEY。

  • OceanBase 資料庫 MySQL 租戶不支援某些 COLLATE。