From 385108128b47805c6cb90615c058cdc797c538e7 Mon Sep 17 00:00:00 2001 From: Tanner Date: Thu, 12 Sep 2019 17:36:43 +0800 Subject: [PATCH 01/10] reference: add tidb session variable description about `tidb_allow_remove_auto_inc` --- .../configuration/tidb-server/tidb-specific-variables.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/v3.0/reference/configuration/tidb-server/tidb-specific-variables.md b/v3.0/reference/configuration/tidb-server/tidb-specific-variables.md index 7f931b2808b2..36da49c68a9a 100644 --- a/v3.0/reference/configuration/tidb-server/tidb-specific-variables.md +++ b/v3.0/reference/configuration/tidb-server/tidb-specific-variables.md @@ -638,3 +638,11 @@ select * from t, t1 where t.a=t1.a 默认值:0 TiDB 默认会在建表时为新表分裂 Region。开启该变量后,会在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是关闭该变量的数倍。 + +### tidb_allow_remove_auto_inc + +作用域:SESSION + +默认值:0 + +这个变量用来控制是否允许通过 `ALTER TABLE MODIFY` 或 `ALTER TABLE CHANGE` 来移除某个列的 `auto_increment` 属性。默认为不允许。 From 4afaaddb0201ed2df0e7fea0bc8680886bac36dc Mon Sep 17 00:00:00 2001 From: Tanner Date: Thu, 12 Sep 2019 17:38:21 +0800 Subject: [PATCH 02/10] update v2.1 --- .../configuration/tidb-server/tidb-specific-variables.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/v2.1/reference/configuration/tidb-server/tidb-specific-variables.md b/v2.1/reference/configuration/tidb-server/tidb-specific-variables.md index b1779800ddee..b1664720bf51 100644 --- a/v2.1/reference/configuration/tidb-server/tidb-specific-variables.md +++ b/v2.1/reference/configuration/tidb-server/tidb-specific-variables.md @@ -443,3 +443,11 @@ set tidb_query_log_max_len = 20 默认值:0 TiDB 默认会在建表时为新表分裂 Region。开启该变量后,会在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是关闭该变量的数倍。 + +### tidb_allow_remove_auto_inc + +作用域:SESSION + +默认值:0 + +这个变量用来控制是否允许通过 `ALTER TABLE MODIFY` 或 `ALTER TABLE CHANGE` 来移除某个列的 `auto_increment` 属性。默认为不允许。 From 654b8223c28f5f752319c5220fc8f1b8a1da1973 Mon Sep 17 00:00:00 2001 From: Tanner Date: Thu, 12 Sep 2019 17:39:12 +0800 Subject: [PATCH 03/10] update dev --- .../configuration/tidb-server/tidb-specific-variables.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dev/reference/configuration/tidb-server/tidb-specific-variables.md b/dev/reference/configuration/tidb-server/tidb-specific-variables.md index 2151099b37b8..942cbc4bbd04 100644 --- a/dev/reference/configuration/tidb-server/tidb-specific-variables.md +++ b/dev/reference/configuration/tidb-server/tidb-specific-variables.md @@ -636,3 +636,11 @@ select * from t, t1 where t.a=t1.a 默认值:0 TiDB 默认会在建表时为新表分裂 Region。开启该变量后,会在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是关闭该变量的数倍。 + +### tidb_allow_remove_auto_inc + +作用域:SESSION + +默认值:0 + +这个变量用来控制是否允许通过 `ALTER TABLE MODIFY` 或 `ALTER TABLE CHANGE` 来移除某个列的 `auto_increment` 属性。默认为不允许。 From 21dc21f55a563e6601baf605e6648f124a95dd60 Mon Sep 17 00:00:00 2001 From: Tanner Date: Thu, 12 Sep 2019 22:20:15 +0800 Subject: [PATCH 04/10] update mysql compatibility --- dev/reference/mysql-compatibility.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev/reference/mysql-compatibility.md b/dev/reference/mysql-compatibility.md index b6b9bbb7b7af..3cc72be4e613 100644 --- a/dev/reference/mysql-compatibility.md +++ b/dev/reference/mysql-compatibility.md @@ -63,6 +63,8 @@ TiDB 实现自增 ID 的原理是每个 tidb-server 实例缓存一段 ID 值用 1. 客户端向 B 插入一条将 `id` 设置为 1 的语句 `insert into t values (1, 1)`,并执行成功。 2. 客户端向 A 发送 Insert 语句 `insert into t (c) (1)`,这条语句中没有指定 `id` 的值,所以会由 A 分配,当前 A 缓存了 [1, 30000] 这段 ID,所以会分配 1 为自增 ID 的值,并把本地计数器加 1。而此时数据库中已经存在 `id` 为 1 的数据,最终返回 `Duplicated Error` 错误。 +另外,TiDB 通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 + ### Performance schema Performance schema 表在 TiDB 中返回结果为空。TiDB 使用 [Prometheus 和 Grafana](/dev/how-to/monitor/monitor-a-cluster.md) 来监测性能指标。 From 591804c3d5aaa77397cdbc2bc8b3dbe35f173ff7 Mon Sep 17 00:00:00 2001 From: Tanner Date: Thu, 12 Sep 2019 22:25:09 +0800 Subject: [PATCH 05/10] update mysql compatibility TiDB version number --- dev/reference/mysql-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/reference/mysql-compatibility.md b/dev/reference/mysql-compatibility.md index 3cc72be4e613..16c096996949 100644 --- a/dev/reference/mysql-compatibility.md +++ b/dev/reference/mysql-compatibility.md @@ -63,7 +63,7 @@ TiDB 实现自增 ID 的原理是每个 tidb-server 实例缓存一段 ID 值用 1. 客户端向 B 插入一条将 `id` 设置为 1 的语句 `insert into t values (1, 1)`,并执行成功。 2. 客户端向 A 发送 Insert 语句 `insert into t (c) (1)`,这条语句中没有指定 `id` 的值,所以会由 A 分配,当前 A 缓存了 [1, 30000] 这段 ID,所以会分配 1 为自增 ID 的值,并把本地计数器加 1。而此时数据库中已经存在 `id` 为 1 的数据,最终返回 `Duplicated Error` 错误。 -另外,TiDB 通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 +另外,从 release 2.1.18 和 3.0.4 开始,TiDB 通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 ### Performance schema From 16ede0234e61b9ae1b87f8b12ae7b854ade9e527 Mon Sep 17 00:00:00 2001 From: Tanner Date: Mon, 16 Sep 2019 09:50:06 +0800 Subject: [PATCH 06/10] update mysql-compatibility v3.0 --- v3.0/reference/mysql-compatibility.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/v3.0/reference/mysql-compatibility.md b/v3.0/reference/mysql-compatibility.md index 2b99ba203797..7c3b3ab67a25 100644 --- a/v3.0/reference/mysql-compatibility.md +++ b/v3.0/reference/mysql-compatibility.md @@ -61,6 +61,8 @@ TiDB 实现自增 ID 的原理是每个 tidb-server 实例缓存一段 ID 值用 1. 客户端向 B 插入一条将 `id` 设置为 1 的语句 `insert into t values (1, 1)`,并执行成功。 2. 客户端向 A 发送 Insert 语句 `insert into t (c) (1)`,这条语句中没有指定 `id` 的值,所以会由 A 分配,当前 A 缓存了 [1, 30000] 这段 ID,所以会分配 1 为自增 ID 的值,并把本地计数器加 1。而此时数据库中已经存在 `id` 为 1 的数据,最终返回 `Duplicated Error` 错误。 +另外,从 release 2.1.18 和 3.0.4 开始,TiDB 通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 + ### Performance schema Performance schema 表在 TiDB 中返回结果为空。TiDB 使用 [Prometheus 和 Grafana](/v3.0/how-to/monitor/monitor-a-cluster.md) 来监测性能指标。 From a18e68c066f9f65caf1c13062262085d199597c0 Mon Sep 17 00:00:00 2001 From: Tanner Date: Mon, 16 Sep 2019 09:51:05 +0800 Subject: [PATCH 07/10] Update mysql-compatibility.md --- v2.1/reference/mysql-compatibility.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/v2.1/reference/mysql-compatibility.md b/v2.1/reference/mysql-compatibility.md index 38bc846b6664..9637fd30fe51 100644 --- a/v2.1/reference/mysql-compatibility.md +++ b/v2.1/reference/mysql-compatibility.md @@ -63,6 +63,8 @@ TiDB 实现自增 ID 的原理是每个 tidb-server 实例缓存一段 ID 值用 1. 客户端向 B 插入一条将 `id` 设置为 1 的语句 `insert into t values (1, 1)`,并执行成功。 2. 客户端向 A 发送 Insert 语句 `insert into t (c) (1)`,这条语句中没有指定 `id` 的值,所以会由 A 分配,当前 A 缓存了 [1, 30000] 这段 ID,所以会分配 1 为自增 ID 的值,并把本地计数器加 1。而此时数据库中已经存在 `id` 为 1 的数据,最终返回 `Duplicated Error` 错误。 +另外,从 release 2.1.18 和 3.0.4 开始,TiDB 通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 + ### Performance schema Performance schema 表在 TiDB 中返回结果为空。TiDB 使用 [Prometheus 和 Grafana](/v2.1/how-to/monitor/monitor-a-cluster.md) 来监测性能指标。 From 6d4aafb4fca15786bbf21bca27a7e0ab4c18071d Mon Sep 17 00:00:00 2001 From: tangenta Date: Mon, 16 Sep 2019 16:37:10 +0800 Subject: [PATCH 08/10] address comment --- .../configuration/tidb-server/tidb-specific-variables.md | 2 +- dev/reference/mysql-compatibility.md | 2 +- .../configuration/tidb-server/tidb-specific-variables.md | 2 +- v2.1/reference/mysql-compatibility.md | 2 +- .../configuration/tidb-server/tidb-specific-variables.md | 2 +- v3.0/reference/mysql-compatibility.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dev/reference/configuration/tidb-server/tidb-specific-variables.md b/dev/reference/configuration/tidb-server/tidb-specific-variables.md index 942cbc4bbd04..71158430f21f 100644 --- a/dev/reference/configuration/tidb-server/tidb-specific-variables.md +++ b/dev/reference/configuration/tidb-server/tidb-specific-variables.md @@ -637,7 +637,7 @@ select * from t, t1 where t.a=t1.a TiDB 默认会在建表时为新表分裂 Region。开启该变量后,会在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是关闭该变量的数倍。 -### tidb_allow_remove_auto_inc +### tidb_allow_remove_auto_inc 从 v2.1.8 和 v3.0.4 版本开始引入 作用域:SESSION diff --git a/dev/reference/mysql-compatibility.md b/dev/reference/mysql-compatibility.md index 16c096996949..045d762d3ffb 100644 --- a/dev/reference/mysql-compatibility.md +++ b/dev/reference/mysql-compatibility.md @@ -63,7 +63,7 @@ TiDB 实现自增 ID 的原理是每个 tidb-server 实例缓存一段 ID 值用 1. 客户端向 B 插入一条将 `id` 设置为 1 的语句 `insert into t values (1, 1)`,并执行成功。 2. 客户端向 A 发送 Insert 语句 `insert into t (c) (1)`,这条语句中没有指定 `id` 的值,所以会由 A 分配,当前 A 缓存了 [1, 30000] 这段 ID,所以会分配 1 为自增 ID 的值,并把本地计数器加 1。而此时数据库中已经存在 `id` 为 1 的数据,最终返回 `Duplicated Error` 错误。 -另外,从 release 2.1.18 和 3.0.4 开始,TiDB 通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 +另外,从 TiDB 2.1.18 和 3.0.4 版本开始,TiDB 将通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 ### Performance schema diff --git a/v2.1/reference/configuration/tidb-server/tidb-specific-variables.md b/v2.1/reference/configuration/tidb-server/tidb-specific-variables.md index b1664720bf51..b8644d334753 100644 --- a/v2.1/reference/configuration/tidb-server/tidb-specific-variables.md +++ b/v2.1/reference/configuration/tidb-server/tidb-specific-variables.md @@ -444,7 +444,7 @@ set tidb_query_log_max_len = 20 TiDB 默认会在建表时为新表分裂 Region。开启该变量后,会在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是关闭该变量的数倍。 -### tidb_allow_remove_auto_inc +### tidb_allow_remove_auto_inc 从 v2.1.8 版本开始引入 作用域:SESSION diff --git a/v2.1/reference/mysql-compatibility.md b/v2.1/reference/mysql-compatibility.md index 9637fd30fe51..c52bc9d0837c 100644 --- a/v2.1/reference/mysql-compatibility.md +++ b/v2.1/reference/mysql-compatibility.md @@ -63,7 +63,7 @@ TiDB 实现自增 ID 的原理是每个 tidb-server 实例缓存一段 ID 值用 1. 客户端向 B 插入一条将 `id` 设置为 1 的语句 `insert into t values (1, 1)`,并执行成功。 2. 客户端向 A 发送 Insert 语句 `insert into t (c) (1)`,这条语句中没有指定 `id` 的值,所以会由 A 分配,当前 A 缓存了 [1, 30000] 这段 ID,所以会分配 1 为自增 ID 的值,并把本地计数器加 1。而此时数据库中已经存在 `id` 为 1 的数据,最终返回 `Duplicated Error` 错误。 -另外,从 release 2.1.18 和 3.0.4 开始,TiDB 通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 +另外,从 TiDB 2.1.18 和 3.0.4 版本开始,TiDB 将通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 ### Performance schema diff --git a/v3.0/reference/configuration/tidb-server/tidb-specific-variables.md b/v3.0/reference/configuration/tidb-server/tidb-specific-variables.md index 36da49c68a9a..7b82abdfb515 100644 --- a/v3.0/reference/configuration/tidb-server/tidb-specific-variables.md +++ b/v3.0/reference/configuration/tidb-server/tidb-specific-variables.md @@ -639,7 +639,7 @@ select * from t, t1 where t.a=t1.a TiDB 默认会在建表时为新表分裂 Region。开启该变量后,会在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是关闭该变量的数倍。 -### tidb_allow_remove_auto_inc +### tidb_allow_remove_auto_inc 从 v3.0.4 版本开始引入 作用域:SESSION diff --git a/v3.0/reference/mysql-compatibility.md b/v3.0/reference/mysql-compatibility.md index 7c3b3ab67a25..85896ee3d14e 100644 --- a/v3.0/reference/mysql-compatibility.md +++ b/v3.0/reference/mysql-compatibility.md @@ -61,7 +61,7 @@ TiDB 实现自增 ID 的原理是每个 tidb-server 实例缓存一段 ID 值用 1. 客户端向 B 插入一条将 `id` 设置为 1 的语句 `insert into t values (1, 1)`,并执行成功。 2. 客户端向 A 发送 Insert 语句 `insert into t (c) (1)`,这条语句中没有指定 `id` 的值,所以会由 A 分配,当前 A 缓存了 [1, 30000] 这段 ID,所以会分配 1 为自增 ID 的值,并把本地计数器加 1。而此时数据库中已经存在 `id` 为 1 的数据,最终返回 `Duplicated Error` 错误。 -另外,从 release 2.1.18 和 3.0.4 开始,TiDB 通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 +另外,从 TiDB 2.1.18 和 3.0.4 版本开始,TiDB 将通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 ### Performance schema From 5f3cfa30683a8f8c40928c497be1f9e2c9580855 Mon Sep 17 00:00:00 2001 From: Tanner Date: Mon, 16 Sep 2019 19:11:27 +0800 Subject: [PATCH 09/10] Update v2.1/reference/mysql-compatibility.md Co-Authored-By: Keke Yi <40977455+yikeke@users.noreply.github.com> --- v2.1/reference/mysql-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2.1/reference/mysql-compatibility.md b/v2.1/reference/mysql-compatibility.md index c52bc9d0837c..7e0feeccb55c 100644 --- a/v2.1/reference/mysql-compatibility.md +++ b/v2.1/reference/mysql-compatibility.md @@ -63,7 +63,7 @@ TiDB 实现自增 ID 的原理是每个 tidb-server 实例缓存一段 ID 值用 1. 客户端向 B 插入一条将 `id` 设置为 1 的语句 `insert into t values (1, 1)`,并执行成功。 2. 客户端向 A 发送 Insert 语句 `insert into t (c) (1)`,这条语句中没有指定 `id` 的值,所以会由 A 分配,当前 A 缓存了 [1, 30000] 这段 ID,所以会分配 1 为自增 ID 的值,并把本地计数器加 1。而此时数据库中已经存在 `id` 为 1 的数据,最终返回 `Duplicated Error` 错误。 -另外,从 TiDB 2.1.18 和 3.0.4 版本开始,TiDB 将通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 +另外,从 TiDB 2.1.18 开始,TiDB 将通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 ### Performance schema From 33258727985382f87fc08d88774c765b7299a8a6 Mon Sep 17 00:00:00 2001 From: Tanner Date: Mon, 16 Sep 2019 19:11:36 +0800 Subject: [PATCH 10/10] Update v3.0/reference/mysql-compatibility.md Co-Authored-By: Keke Yi <40977455+yikeke@users.noreply.github.com> --- v3.0/reference/mysql-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v3.0/reference/mysql-compatibility.md b/v3.0/reference/mysql-compatibility.md index 85896ee3d14e..ef220007ef75 100644 --- a/v3.0/reference/mysql-compatibility.md +++ b/v3.0/reference/mysql-compatibility.md @@ -61,7 +61,7 @@ TiDB 实现自增 ID 的原理是每个 tidb-server 实例缓存一段 ID 值用 1. 客户端向 B 插入一条将 `id` 设置为 1 的语句 `insert into t values (1, 1)`,并执行成功。 2. 客户端向 A 发送 Insert 语句 `insert into t (c) (1)`,这条语句中没有指定 `id` 的值,所以会由 A 分配,当前 A 缓存了 [1, 30000] 这段 ID,所以会分配 1 为自增 ID 的值,并把本地计数器加 1。而此时数据库中已经存在 `id` 为 1 的数据,最终返回 `Duplicated Error` 错误。 -另外,从 TiDB 2.1.18 和 3.0.4 版本开始,TiDB 将通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 +另外,从 TiDB 3.0.4 版本开始,TiDB 将通过系统变量 `@@tidb_remove_auto_inc` 控制是否允许通过 `alter table modify` 或 `alter table change` 来移除列的 `auto_increment` 属性,默认是不允许移除。 ### Performance schema