MySQL - Auto_increment 10

时间:2011-02-18 20:12:16

标签: mysql default auto-increment

如何设置auto_increment列,使其为每个记录插入增加10。

例如:而不是默认auto_increment乘1,

insert into temptable (name) values('abc'),('def');

select * from temptable;
  id|name
  1|abc
  2|def

auto_increment by 10,
  id|name
  10|abc
  20|def

4 个答案:

答案 0 :(得分:2)

您必须更改auto_increment_increment设置,但这会同时适用于所有表格。我认为没有每表增量设置。

但这通常不是一个好主意。您想要生成发票号码吗?在这种情况下,您可能最好使用生成下一个数字的自定义方法。

答案 1 :(得分:2)

我不确定你为什么需要它,但如果你想在输出上得到这个结果,你可以简单地将值乘以10

答案 2 :(得分:1)

您可以关闭auto_increment,然后添加触发器。设置另一个具有单个值的表,即下一个id,然后将插入行的id设置为该表的值:

CREATE TABLE next (next_id int not null);
INSERT INTO next VALUES(0);

delimiter |

CREATE TRIGGER update_id BEFORE INSERT ON temptable
  FOR EACH ROW BEGIN
    SET NEW.id = (SELECT next_id FROM next);
    UPDATE next SET next_id = next_id + 10;
  END;
|
delimiter ;

答案 3 :(得分:0)

如果您已经有自己的ID,并且想将其放大10乘10,请遵循Nazariy的想法,并使用当前ID并用

乘以10

update xyourtablex set id=id*10000

或大于您的ID的数字(如果没有,则将创建重复项) 最后:

update xyourtablex set id=id/1000

或简单地删除唯一或索引,乘以10并再次添加索引或唯一:)