0

当我尝试执行以下查询时

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 开始,它将开始,但同时我希望代码列从 2000 开始在我将数据插入表时递增。那么,查询中是否可以有两个 auto_increments ?我是在 servlet 的帮助下做到这一点的。

4

1 回答 1

0

直接回答:你不能有多个 auto_increment 值,就像 poncha 说的那样。

但是,这可以通过以下几种方式完成:

  1. 重写您的插入语句以找到前面的代码并添加 1:

    INSERT INTO xyz (name, code) VALUES ("some-name", (SELECT max(code)+1 FROM xyz))

  2. 在插入后创建一个 mysql 触发器以查找代码的最大值并添加一个然后更新

!!我根本不推荐这个,请重新设计你的代码!

我的最高建议是生成一个随机数并在插入时使用它,或者重写子查询以创建一个随机数。

于 2012-06-27T05:40:22.103 回答