Files
oceanbase/docs/docs-cn/6.administrator-guide/4.database-object-management-1/1.manage-tables/6.change-table.md
2022-02-10 14:51:49 +08:00

2.3 KiB

更改表

表创建成功后,您可以使用 ALTER TABLE 语句对表进行修改。

修改索引

  • MySQL 模式

    OceanBase 数据库的 MySQL 模式支持增加唯一索引和普通索引,同时还支持修改索引的属性。

    • 增加唯一索引

      OceanBase 数据库支持在创建表后为表增加唯一索引。如果创建表时同时设置了主键,OceanBase 数据库会默认为主键列创建一个唯一索引。

      增加唯一索引的示例如下:

      obclient> CREATE TABLE test (c1 int PRIMARY KEY, c2 VARCHAR(50));
      Query OK, 0 rows affected (0.04 sec)
      
      obclient> ALTER TABLE test ADD UNIQUE INDEX index_name(c2);
      Query OK, 0 rows affected (0.53 sec)
      
    • 增加普通索引

      OceanBase 数据库的 MySQL 模式支持一次增加多个索引,索引关键字用 INDEXKEY 均可以。

      obclient> CREATE TABLE test (c1 int PRIMARY KEY, c2 VARCHAR(50));
      Query OK, 0 rows affected (0.04 sec)
      
      obclient> ALTER TABLE test ADD INDEX myidx(c1,c2);
      Query OK, 0 rows affected (0.55 sec)
      
    • 修改索引属性

      OceanBase 数据库的 MySQL 模式支持将索引修改为可见或不可见,默认索引均可见,您可以将索引修改为不可见。

      语法如下:

      obclient> ALTER TABLE test ALTER INDEX myidx INVISIBLE;
      

重命名表

表创建成功后,您可以更改表名。

OceanBase 数据库的 MySQL 模式支持重命名表。

示例如下:

obclient> ALTER TABLE test RENAME TO t1;

删除表组

OceanBase 数据库的 MySQL 模式支持删除表所属的表组。

MySQL 模式下删除表组的示例如下:

obclient> ALTER TABLE test DROP TABLEGROUP grp1;

更多表组相关信息,请参见 管理表组 章节。

删除外键

OceanBase 数据库的 MySQL 模式支持删除表的外键。

  • MySQL 模式下删除表的外键示例

    obclient> ALTER TABLE test DROP FOREIGN KEY fk_name;