Mysql 如何创建从1000开始自动递增的INT字段(不是主键)

Mysql 如何创建从1000开始自动递增的INT字段(不是主键),mysql,database,field,primary-key,Mysql,Database,Field,Primary Key,我想在我的MYSQL数据库中创建一个字段INT(11),它从1000开始,在每次INSERT之后递增1 警告:这不是主键 数据库使用MYSQL 6.0和InnoDB引擎运行 如果可能,我可以由谁来实现这一点?您可以拥有一个自动增量列,只要它被定义为键(它不必是主键)。例如: CREATE TABLE auto_inc_test ( ID INT PRIMARY KEY, IncValue INT AUTO_INCREMENT, SomeData VARCHAR(50),

我想在我的MYSQL数据库中创建一个字段
INT(11)
,它从1000开始,在每次
INSERT
之后递增1

警告:这不是主键

数据库使用MYSQL 6.0和InnoDB引擎运行


如果可能,我可以由谁来实现这一点?

您可以拥有一个自动增量列,只要它被定义为键(它不必是
主键)。例如:

CREATE TABLE auto_inc_test (
    ID INT PRIMARY KEY,
    IncValue INT AUTO_INCREMENT,
    SomeData VARCHAR(50),
    INDEX(IncValue)
);
ALTER TABLE auto_inc_test AUTO_INCREMENT = 1000;
(更改表的
行设置
自动增量的下一个值

如果然后运行以下insert(显然,它没有为IncValue字段提供值):

您将获得:

ID    IncValue    SomeData
1     1000        test 1
2     1001        test 2
3     1002        test 3

尝试下面的代码,希望这能帮助您关注下面代码中的语法部分--KEY(id)--


是否要确保每个数字都是唯一的?如果是,为什么不将它设置为主键呢?如果愿意,您仍然可以在另一列上拥有唯一的索引。如果没有,我恐怕你无能为力,没有什么概念可以自动递增,不能保证是唯一的。是的,每个数字都必须是唯一的。我不能将其设置为主键,因为主键已经存在,并且该字段与主键的含义不同。主键是自动递增的吗?这正是我想要的,但我如何将主键设置为自动递增字段?你不能:每个表只能有一个自动递增列。据我所知,你可以,一个表中只有一个
自动增量
。如果你需要两个,你将不得不手动管理其中一个-也许使用触发器?
ID    IncValue    SomeData
1     1000        test 1
2     1001        test 2
3     1002        test 3
CREATE TABLE IF NOT EXISTS `users`(
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(100) NOT NULL,
  `email` varchar(80) NOT NULL,
  `type` int(11) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` enum('1','0') NOT NULL COMMENT '''0'' for inactive ''1'' for active',
   PRIMARY KEY (`username`),
   KEY (id)    
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1000;