1.9.MySQL-DML-添加数据insert

一.insert语法:

细节1:指定字段添加数据语句和批量添加数据(指定字段)中:字段名1和字段名2之间要用逗号间隔,后面的值1与字段名1对应,值2与字段名2对应(一一对应)。

细节2:全部字段添加数据语句也可写成:insert into 表名(所有字段) values (录入各自对应值);

批量添加数据(全部字段)语句也可写成:insert into 表名(所有字段) values (录入各自 对应值),(录入各自对应值)...;

二.指定字段添加数据:

例如:

错解:

正解:

运行结果:

三.全部字段添加数据:

例如:

运行结果:

四.批量添加数据(指定字段):->批量添加数据(全部字段)就不演示了

例如:

运行结果:

五.注意事项:

### ### `canal.instance.filter.query.dml` 与 `canal.instance.filter.dml.insert/update/delete` 的作用与区别 在 Canal 的配置中,`canal.instance.filter.query.dml` 和 `canal.instance.filter.dml.insert`、`canal.instance.filter.dml.update`、`canal.instance.filter.dml.delete` 是用于控制 DML 类型事件过滤的参数,但它们的作用机制和适用场景存在本质区别。 #### ### `canal.instance.filter.query.dml` 该参数用于控制是否过滤 Binlog 中的查询事件(Query Events),这些事件通常包含原始的 SQL 语句,例如 `INSERT`、`UPDATE`、`DELETE` 等。在 MySQL 中,如果启用了 `binlog_rows_query_log_events` 参数,则这些 SQL 语句会被注释形式附加在行事件(Row Events)之后。 当 `canal.instance.filter.query.dml` 设置为 `true` 时,Canal 会跳过这些被注释的 SQL 语句事件,仅保留行事件数据。这种配置适用于只需要处理结构化变更数据(如 Kafka、RocketMQ 等消息队列消费场景),而无需原始 SQL 语句的情况。 ```properties canal.instance.filter.query.dml = true ``` 该配置不会影响实际的 DML 操作数据捕获,仅控制是否解析和传递原始 SQL 查询语句[^1]。 #### ### `canal.instance.filter.dml.insert` / `update` / `delete` 这三个参数分别用于控制是否过滤具体的 DML 操作类型:`INSERT`、`UPDATE` 和 `DELETE`。当设置为 `true` 时,对应的 DML 操作事件将被忽略,不会被解析并发送到下游消费者。 ```properties canal.instance.filter.dml.insert = true canal.instance.filter.dml.update = false canal.instance.filter.dml.delete = true ``` 例如,若 `canal.instance.filter.dml.insert` 设置为 `true`,则所有插入操作的行事件将被跳过,不参与后续的数据同步流程。这种过滤机制是基于行事件本身的类型进行判断的,与 `canal.instance.filter.query.dml` 的作用层级不同。 这些参数适用于需要按操作类型筛选变更数据的场景,如仅关注更新操作或删除操作的数据同步需求。 #### ### 总结对比 | 配置项 | 作用 | 过滤内容 | 适用场景 | |--------|------|----------|----------| | `canal.instance.filter.query.dml` | 控制是否解析原始 SQL 语句 | 注释形式的 DML 语句 | 仅需行事件数据 | | `canal.instance.filter.dml.insert` | 控制是否忽略插入操作 | 行事件中的 `INSERT` 操作 | 不需要插入数据同步 | | `canal.instance.filter.dml.update` | 控制是否忽略更新操作 | 行事件中的 `UPDATE` 操作 | 仅关注更新操作 | | `canal.instance.filter.dml.delete` | 控制是否忽略删除操作 | 行事件中的 `DELETE` 操作 | 仅关注删除操作 | #### ### 配置建议 - 若仅需结构化变更数据,且不需要原始 SQL 语句,应将 `canal.instance.filter.query.dml` 设置为 `true`。 - 若需按操作类型筛选数据,应根据实际需求设置 `canal.instance.filter.dml.insert`、`canal.instance.filter.dml.update` 和 `canal.instance.filter.dml.delete` 的值。 - 通常情况下,建议将 `canal.instance.filter.query.dml` 设为 `false`,除非明确不需要 SQL 语句信息,以避免遗漏关键调试信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值