From 7972e6859e80ca82f10e3431ed55326b85235ca5 Mon Sep 17 00:00:00 2001 From: nhsmw Date: Mon, 11 Nov 2024 14:15:00 +0800 Subject: [PATCH 1/5] Update ticdc-faq.md --- ticdc/ticdc-faq.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ticdc/ticdc-faq.md b/ticdc/ticdc-faq.md index 08809a39aa1e..9db1c070c4ef 100644 --- a/ticdc/ticdc-faq.md +++ b/ticdc/ticdc-faq.md @@ -428,3 +428,7 @@ TiDB 有事务超时的机制,当事务运行超过 [`max-txn-ttl`](/tidb-conf } ] ``` + +## TiCDC 同步数据到 kafka 或存储服务时,DML 中的生成列会发生什么行为? + +生成列包括存储生成列和虚拟生成列,TiCDC 会忽略虚拟生成列,只把存储生成列复制到下游。当存储生成列复制到 Kafka 或存储服务等下游后,再写入到MySQL 时会出现报错`Error 3105 (HY000): The value specified for generated column 'xx' in table 'xxx' is not allowed.` From 517a0c9d455f266e12980577b159a52996a7ac3d Mon Sep 17 00:00:00 2001 From: nhsmw Date: Mon, 11 Nov 2024 14:22:17 +0800 Subject: [PATCH 2/5] Update ticdc-faq.md --- ticdc/ticdc-faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-faq.md b/ticdc/ticdc-faq.md index 9db1c070c4ef..81155b610a37 100644 --- a/ticdc/ticdc-faq.md +++ b/ticdc/ticdc-faq.md @@ -431,4 +431,4 @@ TiDB 有事务超时的机制,当事务运行超过 [`max-txn-ttl`](/tidb-conf ## TiCDC 同步数据到 kafka 或存储服务时,DML 中的生成列会发生什么行为? -生成列包括存储生成列和虚拟生成列,TiCDC 会忽略虚拟生成列,只把存储生成列复制到下游。当存储生成列复制到 Kafka 或存储服务等下游后,再写入到MySQL 时会出现报错`Error 3105 (HY000): The value specified for generated column 'xx' in table 'xxx' is not allowed.` +生成列包括存储生成列和虚拟生成列,TiCDC 会忽略虚拟生成列,只把存储生成列复制到下游。当存储生成列复制到 Kafka 或存储服务等下游后,再写入到 MySQL 时会出现报错`Error 3105 (HY000): The value specified for generated column 'xx' in table 'xxx' is not allowed.` From f3715b51c2e365f35e117dd4346cfe239c684597 Mon Sep 17 00:00:00 2001 From: nhsmw Date: Mon, 11 Nov 2024 15:43:25 +0800 Subject: [PATCH 3/5] Update ticdc-faq.md --- ticdc/ticdc-faq.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ticdc/ticdc-faq.md b/ticdc/ticdc-faq.md index 81155b610a37..7a48216b5c5c 100644 --- a/ticdc/ticdc-faq.md +++ b/ticdc/ticdc-faq.md @@ -429,6 +429,10 @@ TiDB 有事务超时的机制,当事务运行超过 [`max-txn-ttl`](/tidb-conf ] ``` -## TiCDC 同步数据到 kafka 或存储服务时,DML 中的生成列会发生什么行为? +## DML 中的生成列会发生什么行为? -生成列包括存储生成列和虚拟生成列,TiCDC 会忽略虚拟生成列,只把存储生成列复制到下游。当存储生成列复制到 Kafka 或存储服务等下游后,再写入到 MySQL 时会出现报错`Error 3105 (HY000): The value specified for generated column 'xx' in table 'xxx' is not allowed.` +生成列包括存储生成列和虚拟生成列。TICDC 会忽略虚拟生成列,而仅复制存储生成列到下游。当下游是 MySQL 数据库或其他与 MySQL 兼容的数据库,而不是 Kakfa 或其他存储服务时,存储生成列也会被忽略。 + +> **Note:** +> +> 当复制存储生成列到 Kafka 或存储服务后,再写回 MySQL 时,可能会发生错误 `Error 3105 (HY000): The value specified for generated column 'xx' in table 'xxx' is not allowed`。您可以使用[Open Protocol](https://docs.pingcap.com/zh/tidb/stable/ticdc-open-protocol#ticdc-open-protocol)来避免此错误,因为该协议携带 column flag, 可以区分是否为生成列。 From 7f9b7d57c18c87a8b014b8024f09f53331c67ad5 Mon Sep 17 00:00:00 2001 From: nhsmw Date: Tue, 21 Jan 2025 16:00:56 +0800 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: Grace Cai --- ticdc/ticdc-faq.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ticdc/ticdc-faq.md b/ticdc/ticdc-faq.md index 7a48216b5c5c..07bd0fb0433f 100644 --- a/ticdc/ticdc-faq.md +++ b/ticdc/ticdc-faq.md @@ -429,10 +429,10 @@ TiDB 有事务超时的机制,当事务运行超过 [`max-txn-ttl`](/tidb-conf ] ``` -## DML 中的生成列会发生什么行为? +## TiCDC 会同步 DML 操作中的生成列吗? -生成列包括存储生成列和虚拟生成列。TICDC 会忽略虚拟生成列,而仅复制存储生成列到下游。当下游是 MySQL 数据库或其他与 MySQL 兼容的数据库,而不是 Kakfa 或其他存储服务时,存储生成列也会被忽略。 +生成列包括虚拟生成列和存储生成列。TiCDC 会忽略虚拟生成列,而仅同步存储生成列到下游。当下游是 MySQL 或其他与 MySQL 兼容的数据库,而不是 Kakfa 或其他存储服务时,存储生成列也会被忽略。 -> **Note:** +> **注意:** > -> 当复制存储生成列到 Kafka 或存储服务后,再写回 MySQL 时,可能会发生错误 `Error 3105 (HY000): The value specified for generated column 'xx' in table 'xxx' is not allowed`。您可以使用[Open Protocol](https://docs.pingcap.com/zh/tidb/stable/ticdc-open-protocol#ticdc-open-protocol)来避免此错误,因为该协议携带 column flag, 可以区分是否为生成列。 +> 当同步存储生成列到 Kafka 或存储服务后,再将其写回 MySQL 时,可能会遇到 `Error 3105 (HY000): The value specified for generated column 'xx' in table 'xxx' is not allowed` 错误。为避免该错误,你可以使用 [Open Protocol](/ticdc/ticdc-open-protocol.md#ticdc-open-protocol) 进行同步。该协议的输出包含[列的 flag 值](/ticdc/ticdc-open-protocol.md#列标志位),可以区分是否为生成列。 From d37c5d7e82e0beb0aa68e030555fd635822c6c10 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 22 Jan 2025 14:21:20 +0800 Subject: [PATCH 5/5] Update ticdc/ticdc-faq.md --- ticdc/ticdc-faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-faq.md b/ticdc/ticdc-faq.md index 07bd0fb0433f..4926ca832183 100644 --- a/ticdc/ticdc-faq.md +++ b/ticdc/ticdc-faq.md @@ -435,4 +435,4 @@ TiDB 有事务超时的机制,当事务运行超过 [`max-txn-ttl`](/tidb-conf > **注意:** > -> 当同步存储生成列到 Kafka 或存储服务后,再将其写回 MySQL 时,可能会遇到 `Error 3105 (HY000): The value specified for generated column 'xx' in table 'xxx' is not allowed` 错误。为避免该错误,你可以使用 [Open Protocol](/ticdc/ticdc-open-protocol.md#ticdc-open-protocol) 进行同步。该协议的输出包含[列的 flag 值](/ticdc/ticdc-open-protocol.md#列标志位),可以区分是否为生成列。 +> 当同步存储生成列到 Kafka 或存储服务后,再将其写回 MySQL 时,可能会遇到 `Error 3105 (HY000): The value specified for generated column 'xx' in table 'xxx' is not allowed` 错误。为避免该错误,你可以使用 [Open Protocol](/ticdc/ticdc-open-protocol.md) 进行同步。该协议的输出包含[列的 flag 值](/ticdc/ticdc-open-protocol.md#列标志位),可以区分是否为生成列。