创建在线DDL任务

最近更新时间:2024-11-08 01:27:47

我的收藏

1. 接口描述

接口请求域名: dcdb.tencentcloudapi.com 。

创建在线DDL任务

默认接口请求频率限制:20次/秒。

推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:CreateOnlineDDLJob。
Version String 公共参数,本接口取值:2018-04-11。
Region String 公共参数,详见产品支持的 地域列表
InstanceId String 实例Id
示例值:tdsqlshard-gayfdsflx
Alter String 要执行的 DDL 语句。常用的在线DDL参考此API文档示例部分
示例值:alter table test_tbl add column add_col_2 int not null;
DbName String 要修改的数据库
示例值:test_db
Table String 要修改的表
示例值:test_tbl
User String 指定账号执行DDL,需确保账号有 ALTER, CREATE, INSERT, UPDATE, DROP, DELETE, INDEX, CREATE TEMPORARY TABLES, LOCK TABLES, TRIGGER, REPLICATION CLIENT, REPLICATION SLAVE 等相关权限 (若不填写将默认使用系统账号)
示例值:test_user
Password String 指定账号的密码
示例值:test_pwd
CriticalLoad Integer 运行线程数大于此值时,将终止DDL。不填则默认58
示例值:30
CheckAutoInc Integer 是否检查自增字段。为1则不允许修改自增字段,0或不填写则不检查
示例值:1
MaxDelay Integer 允许的主备延迟时间(单位s),0或不填写则不检查延迟
示例值:5
UsePt Integer 是否使用pt-osc工具做DDL
示例值:1
StartTime String 开始执行时间
示例值:2024-04-01 01:00:00

3. 输出参数

参数名称 类型 描述
FlowId Integer 在线DDL任务Id
示例值:1314
RequestId String 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 添加字段

为 test_tbl 添加字段

输入示例

POST / HTTP/1.1
Host: dcdb.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateOnlineDDLJob
<公共请求参数>

{
    "InstanceId": "tdsqlshard-h2yimmox",
    "Alter": "alter table test_tbl add column test_add_col  varchar(32) not null default 'test' comment 'test add col';",
    "DbName": "test_db",
    "Table": "test_tbl",
    "CriticalLoad": 58,
    "CheckAutoInc": 0,
    "MaxDelay": 10,
    "UsePt": 1,
    "User": "test_user",
    "Password": "test_pwd",
    "StartTime": ""
}

输出示例

{
    "Response": {
        "FlowId": 1140696,
        "RequestId": "bd07e59f-dee8-4680-9a43-492a8a52c894"
    }
}

示例2 添加索引

为 test_tbl添加索引
添加唯一索引 :alter table test_tbl add unique key my_idx(id,name);
添加普通索引:alter table test_tbl add key my_idx_1(id,name);

输入示例

POST / HTTP/1.1
Host: dcdb.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateOnlineDDLJob
<公共请求参数>

{
    "InstanceId": "tdsql-4z38cfwj",
    "Alter": "alter table test_tbl add unique key my_idx(id,name); ",
    "DbName": "test_db",
    "Table": "test_tbl",
    "CriticalLoad": 58,
    "CheckAutoInc": 0,
    "MaxDelay": 10,
    "UsePt": 1,
    "User": "test_user",
    "Password": "test_pwd",
    "StartTime": ""
}

输出示例

{
    "Response": {
        "FlowId": 1140697,
        "RequestId": "c5afb15f-70c8-4e71-84b5-688dd326a8c3"
    }
}

示例3 删除字段

从test_tbl删除字段 test_add_col

输入示例

POST / HTTP/1.1
Host: dcdb.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateOnlineDDLJob
<公共请求参数>

{
    "InstanceId": "tdsqlshard-h2yimmox",
    "Alter": "alter table test_tbl drop column test_add_col; ",
    "DbName": "test_db",
    "Table": "test_tbl",
    "CriticalLoad": 58,
    "CheckAutoInc": 0,
    "MaxDelay": 10,
    "UsePt": 1,
    "User": "test_user",
    "Password": "test_pwd",
    "StartTime": ""
}

输出示例

{
    "Response": {
        "FlowId": 1140698,
        "RequestId": "a9f824be-fc53-41f7-9e24-2aca60457331"
    }
}

示例4 修改字段

将 test_tbl 表字段 test_add_col 从varchar(32) 修改为 varchar(64)

输入示例

POST / HTTP/1.1
Host: dcdb.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateOnlineDDLJob
<公共请求参数>

{
    "InstanceId": "tdsqlshard-h2yimmox",
    "Alter": "alter table test_tbl modify column test_add_col varchar(64) not null default 'test' comment 'test change type'; ",
    "DbName": "test_db",
    "Table": "test_tbl",
    "CriticalLoad": 58,
    "CheckAutoInc": 0,
    "MaxDelay": 10,
    "UsePt": 1,
    "User": "test_user",
    "Password": "test_pwd",
    "StartTime": ""
}

输出示例

{
    "Response": {
        "FlowId": 1140699,
        "RequestId": "7e2e0512-e429-4702-a9a6-d920eebd6536"
    }
}

示例5 表空间优化

表空间优化

输入示例

POST / HTTP/1.1
Host: dcdb.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateOnlineDDLJob
<公共请求参数>

{
    "InstanceId": "tdsqlshard-h2yimmox",
    "Alter": "alter table test_tbl engine=innodb; ",
    "DbName": "test_db",
    "Table": "test_tbl",
    "CriticalLoad": 58,
    "CheckAutoInc": 0,
    "MaxDelay": 10,
    "UsePt": 1,
    "User": "test_user",
    "Password": "test_pwd",
    "StartTime": ""
}

输出示例

{
    "Response": {
        "FlowId": 1140701,
        "RequestId": "9df10ff7-9db5-4cad-81e2-3ad742f7bc06"
    }
}

5. 开发者资源

腾讯云 API 平台

腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。

API Inspector

用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。

SDK

云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

命令行工具

6. 错误码

以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

错误码 描述
InternalError.CreateFlowFailed 创建任务流程失败。
InternalError.DbOperationFailed 查询数据库失败。
InternalError.InnerSystemError 内部系统错误。
InvalidParameter.IllegalParameterError 非法参数。
ResourceUnavailable.InstanceStatusAbnormal 数据库实例状态不正确,当前无法操作。
UnsupportedOperation.InvalidOperation 不支持的无效操作。