我有2个表order_retailer和order_customer
他们都有自动递增的主键order_id
为了使整个系统中的订单ID唯一,我希望order_retailer只将id作为偶数,而对于order_customer,id将是奇数。为此我必须将自动增量的增量值设置为2.是否可以在mysql中以表格方式设置它。
我不想要一个php解决方案。如果有一个命令/查询将特定表的自动增量转换设置为2,请告诉我。 另外我不想更改服务器变量auto_increment_increment或auto_increment_offset或任何其他服务器变量
答案 0 :(得分:11)
您可以从另一个表中偏移一个表的自动增量字段,即一个表从1开始,而另一个表从1000000开始(或根据您的使用模式选择一些其他值)。
CREATE TABLE table1 (id BIGINT UNSIGNED AUTO_INCREMENT);
CREATE TABLE table2 (id BIGINT UNSIGNED AUTO_INCREMENT) AUTO_INCREMENT = 1000000;
您还可以根据需要选择自动增量列类型。 BIGINT UNSIGNED的范围是0..18446744073709551615,应该涵盖大多数情况。
或
试
SET @@auto_increment_increment=2;
SET @@auto_increment_offset=2;
答案 1 :(得分:6)
不能不能用表格来设置它。
Mysql有2个变量auto_increment_increment
和auto_increment_offset
,默认情况下这两个变量的值都是1。如果您更改任何值,它将具有全局效果。
要解决您的问题,请根据需要创建一个存储过程,即使是id。
希望这有帮助