如何在mysql中从除一以外的值开始自动递增列值?

发布于 2024-11-14 14:12:44 字数 217 浏览 6 评论 0原文

我有一个现有的 mysql 表,其中 id 列定义为主,自动增量设置为 true。现在,我想知道是否可以将自动递增设置为从预定义值(例如 5678)开始,而不是从 1 开始。

我还想知道是否可以设置自动递增的步骤,例如每插入一条新记录就增加 15(而不是默认的增量值 1)。

注意-我正在使用 phpmyadmin 来操作数据库,并且我有很多表,但只有一个数据库。

谢谢。

i have an existing mysql table with the id column defined as primary, and auto-increment set as true. now, i would like to know if i can set the auto-increment to start from a predefined value, say 5678, instead of starting off from 1.

I would also like to know if i can set the steps for auto-incrementing, say increase by 15 each for each new record insertion (instead of the default increment value of 1).

Note- i am using phpmyadmin to play with the db, and i have many tables but only one db.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

Saygoodbye 2024-11-21 14:12:44

ALTER TABLE tbl AUTO_INCRMENT = 5678 将该表的自动增量设置为 5678。请查看此处的详细信息。

ALTER TABLE tbl AUTO_INCREMENT = 5678 will set the auto increment to 5678 for that table. Have a look at the detailed information here.

你不是我要的菜∠ 2024-11-21 14:12:44

您可以使用以下命令设置自动增量值

ALTER TABLE tbl_name AUTO_INCREMENT = 5678;

,并且可以使用以下命令更新 auto_increment 计数器变量

SET @@auto_increment_increment=15;

Loo at 此处了解更多信息

mysql> SET @@auto_increment_increment=15;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> SELECT col FROM autoinc1;
+-----+
| col |
+-----+
|   1 |
|  16 |
|  31 |
|  46 |

You can set the auto increment value using below command

ALTER TABLE tbl_name AUTO_INCREMENT = 5678;

And can update the auto_increment counter variable using below command

SET @@auto_increment_increment=15;

Loo at here for more info

mysql> SET @@auto_increment_increment=15;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> SELECT col FROM autoinc1;
+-----+
| col |
+-----+
|   1 |
|  16 |
|  31 |
|  46 |
活雷疯 2024-11-21 14:12:44

您还可以使用 server-system-variables:

auto_increment_increment

auto_increment_offset

这将允许您每次将偏移量增加 1 以外的其他值(例如 15)。
如果您在不同的服务器上使用相同的偏移量从不同的值开始。这将允许您将表保留在不同的服务器上,这些表可以合并而不会出现键重叠。

例如,

(inc = 15 offset = 1)          (inc=15 offset = 2)
table1 on server A             table1 on server B
-----------------------------------------------------
id     name                    id    name
1      bill                    2     john
16     monica                  17    claire 
....

这可能非常有用。

因为主要用途是让不同服务器上的同一个表以不同的方式运行,所以它是服务器设置而不是表设置。

You can also use the server-system-variables:

auto_increment_increment

and

auto_increment_offset

This will allow you to increase the offset by other values than 1 (e.g. 15) each time.
If you start from a different value using the same offset on a different server. This will allow you to keep tables on different servers that can be merged without keys overlapping.

e.g.

(inc = 15 offset = 1)          (inc=15 offset = 2)
table1 on server A             table1 on server B
-----------------------------------------------------
id     name                    id    name
1      bill                    2     john
16     monica                  17    claire 
....

This can be very useful.

Because the main usage is to have the same table on different servers behave in a different way, it is a server setting and not a table setting.

掩耳倾听 2024-11-21 14:12:44

ALTER TABLE What AUTO_INCRMENT=5678 - 或者在 phpMyAdmin 中,转到表视图的“操作”选项卡并将其设置在那里。对于增量步骤,请使用设置 auto_increment_increment。

ALTER TABLE whatever AUTO_INCREMENT=5678 - alternatively in phpMyAdmin, go to the "Operations" tab of the table view and set it there. For the increment step, use the setting auto_increment_increment.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文