如何设置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
答案 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并再次添加索引或唯一:)