如何从mysql中的值以外的值开始自动增加列值?

时间:2011-06-10 11:04:35

标签: php mysql default auto-increment

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

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

注意 - 我使用phpmyadmin来玩db,我有很多表但只有一个db。

感谢。

5 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

您可以使用以下命令

设置自动增量值
ALTER TABLE tbl_name AUTO_INCREMENT = 5678;

可以使用以下命令

更新auto_increment计数器变量
SET @@auto_increment_increment=15;

here点击了解更多信息

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 |

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您还可以使用server-system-variables

auto_increment_increment

auto_increment_offset

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

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 
....

这非常有用。

由于主要用途是不同服务器上的相同表格以不同的方式运行,因此它是服务器设置而不是表格设置。

答案 4 :(得分:0)