Canal监听常见DDL操作格式


1.新建库

{
  "data": null,
  "database": "",
  "es": 1636948085000,
  "id": 1743,
  "isDdl": true,
  "mysqlType": null,
  "old": null,
  "pkNames": null,
  "sql": "CREATE DATABASE `ddl_test` CHARACTER SET \u0027utf8\u0027 COLLATE \u0027utf8_general_ci\u0027",
  "sqlType": null,
  "table": "",
  "ts": 1636948085373,
  "type": "QUERY"
}

2.新建表

{
  "data": null,
  "database": "test",
  "es": 1636952642000,
  "id": 2351,
  "isDdl": true,
  "mysqlType": null,
  "old": null,
  "pkNames": null,
  "sql": "CREATE TABLE `demo10` (\r\n  `pk` bigint(255) NOT NULL AUTO_INCREMENT,\r\n  `name` varchar(255) DEFAULT NULL,\r\n  `age` int(11) DEFAULT NULL,\r\n  PRIMARY KEY (`pk`)\r\n)",
  "sqlType": null,
  "table": "demo10",
  "ts": 1636952642630,
  "type": "CREATE"
}

3.新增表字段

{
  "data": null,
  "database": "test",
  "es": 1636952716000,
  "id": 2362,
  "isDdl": true,
  "mysqlType": null,
  "old": null,
  "pkNames": null,
  "sql": "ALTER TABLE `test`.`demo10` \r\nADD COLUMN `addr` varchar(255) NULL AFTER `age`",
  "sqlType": null,
  "table": "demo10",
  "ts": 1636952716251,
  "type": "ALTER"
}

4.删除表字段

{
  "data": null,
  "database": "test",
  "es": 1636952766000,
  "id": 2370,
  "isDdl": true,
  "mysqlType": null,
  "old": null,
  "pkNames": null,
  "sql": "ALTER TABLE `test`.`demo10` \r\nDROP COLUMN `addr`",
  "sqlType": null,
  "table": "demo10",
  "ts": 1636952766510,
  "type": "ALTER"
}

5.修改表字段名称

{
  "data": null,
  "database": "test",
  "es": 1636952896000,
  "id": 2389,
  "isDdl": true,
  "mysqlType": null,
  "old": null,
  "pkNames": null,
  "sql": "ALTER TABLE `test`.`demo10` \r\nCHANGE COLUMN `addr` `address` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL AFTER `age`",
  "sqlType": null,
  "table": "demo10",
  "ts": 1636952896772,
  "type": "ALTER"
}

6.修改表字段类型

{
  "data": null,
  "database": "test",
  "es": 1636953342000,
  "id": 2450,
  "isDdl": true,
  "mysqlType": null,
  "old": null,
  "pkNames": null,
  "sql": "ALTER TABLE `test`.`demo10` \r\nMODIFY COLUMN `tel` bigint(255) NULL DEFAULT NULL AFTER `address`",
  "sqlType": null,
  "table": "demo10",
  "ts": 1636953342486,
  "type": "ALTER"
}

7.截断表 truncate

{
  "data": null,
  "database": "test",
  "es": 1636953793000,
  "id": 2512,
  "isDdl": true,
  "mysqlType": null,
  "old": null,
  "pkNames": null,
  "sql": "truncate table demo10",
  "sqlType": null,
  "table": "demo10",
  "ts": 1636953793749,
  "type": "TRUNCATE"
}

8.删除表

{
  "data": null,
  "database": "test",
  "es": 1636954002000,
  "id": 2541,
  "isDdl": true,
  "mysqlType": null,
  "old": null,
  "pkNames": null,
  "sql": "DROP TABLE `demo10` /* generated by server */",
  "sqlType": null,
  "table": "demo10",
  "ts": 1636954002612,
  "type": "ERASE"
}