如何在mysql中为特定表自动递增2

Imd*_*dad 4 mysql

我有2个表order_retailer和order_customer

它们都有自动递增的主键order_id

为了在整个系统中保持订单ID唯一,我希望order_retailer只将id作为偶数,而对于order_customer,id将是奇数.为此,我必须将autoincrement的增量值设置为2.是否可以在mysql中将其设置为表格.

我不想要一个php解决方案.如果有一个命令/查询将特定表的自动增量转换设置为2,请告诉我.另外我不想更改服务器变量auto_increment_increment或auto_increment_offset或任何其他服务器变量

Sah*_*hal 11

您可以从另一个表中偏移一个表的自动增量字段,即一个表从1开始,而另一个表从1000000开始(或根据您的使用模式选择一些其他值).

CREATE TABLE table1 (id BIGINT UNSIGNED AUTO_INCREMENT);
CREATE TABLE table2 (id BIGINT UNSIGNED AUTO_INCREMENT) AUTO_INCREMENT = 1000000;
Run Code Online (Sandbox Code Playgroud)

您也可以根据需要选择自动增量柱类型.BIGINT UNSIGNED的范围是0..18446744073709551615,应该涵盖大多数情况.

要么

尝试

SET @@auto_increment_increment=2;
SET @@auto_increment_offset=2;
Run Code Online (Sandbox Code Playgroud)


Meh*_*zad 6

不,不可能明智地设置它.

Mysql有2个变量auto_increment_increment,auto_increment_offset 默认情况下这两个变量的值都是1.如果您更改任何值,它将具有全局效果.

为了解决你的问题,创建一个存储过程,根据需要甚至id.

请参阅此链接http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html#sysvar_auto_increment_increment

希望这可以帮助