105 lines
2.3 KiB
Markdown
105 lines
2.3 KiB
Markdown
更改表
|
|
========================
|
|
|
|
表创建成功后,您可以使用 `ALTER TABLE` 语句对表进行修改。
|
|
|
|
修改索引
|
|
-------------------------
|
|
|
|
* MySQL 模式
|
|
|
|
OceanBase 数据库的 MySQL 模式支持增加唯一索引和普通索引,同时还支持修改索引的属性。
|
|
* 增加唯一索引
|
|
|
|
OceanBase 数据库支持在创建表后为表增加唯一索引。如果创建表时同时设置了主键,OceanBase 数据库会默认为主键列创建一个唯一索引。
|
|
|
|
增加唯一索引的示例如下:
|
|
|
|
```sql
|
|
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 模式支持一次增加多个索引,索引关键字用 `INDEX` 或 `KEY` 均可以。
|
|
|
|
```sql
|
|
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 模式支持将索引修改为可见或不可见,默认索引均可见,您可以将索引修改为不可见。
|
|
|
|
语法如下:
|
|
|
|
```sql
|
|
obclient> ALTER TABLE test ALTER INDEX myidx INVISIBLE;
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
重命名表
|
|
-------------------------
|
|
|
|
表创建成功后,您可以更改表名。
|
|
|
|
OceanBase 数据库的 MySQL 模式支持重命名表。
|
|
|
|
示例如下:
|
|
|
|
```sql
|
|
obclient> ALTER TABLE test RENAME TO t1;
|
|
```
|
|
|
|
|
|
|
|
删除表组
|
|
-------------------------
|
|
|
|
OceanBase 数据库的 MySQL 模式支持删除表所属的表组。
|
|
|
|
MySQL 模式下删除表组的示例如下:
|
|
|
|
```sql
|
|
obclient> ALTER TABLE test DROP TABLEGROUP grp1;
|
|
```
|
|
|
|
|
|
|
|
更多表组相关信息,请参见 [管理表组](../../../6.administrator-guide/4.database-object-management-1/2.manage-a-table-group/1.about-table-groups.md) 章节。
|
|
|
|
删除外键
|
|
-------------------------
|
|
|
|
OceanBase 数据库的 MySQL 模式支持删除表的外键。
|
|
|
|
* MySQL 模式下删除表的外键示例
|
|
|
|
```sql
|
|
obclient> ALTER TABLE test DROP FOREIGN KEY fk_name;
|
|
```
|
|
|
|
|
|
|
|
|
|
|