当我尝试执行以下查询时
create table xyz(id int(3) not null auto_increment, name char(10) not null, code int(6) auto_increment=2000);
我收到以下错误:
You have an error near '=2000)'
我希望id列从1开始,它将从1开始,但同时我希望每当我将数据插入表中时,代码列将从2000开始递增。 那么,查询中是否可以有两个auto_increments?我是在servlet的帮助下完成的。
答案 0 :(得分:0)
直接回答:你不能拥有多个auto_increment值,正如poncha所说。
但是,这可以通过以下几种方式完成:
重写insert语句以查找上一个代码并添加1:
INSERT INTO xyz(name,code)VALUES(“some-name”, (SELECT max(code)+1 FROM xyz))
在插入后创建一个mysql触发器以查找代码的最大值并添加一个然后更新
!!我根本不推荐这个,请重新设计你的代码!!
我的最高建议是生成一个随机数,并在插入或重写子查询时使用它来创建一个随机数。