如何使用auto_increment创建以1000开头的INT字段(不是主键)

时间:2013-11-06 12:36:31

标签: mysql database field primary-key

我想在我的MYSQL数据库中创建一个字段INT(11),其值为1000,并在每个INSERT之后递增1。

警告:这不是主要关键

数据库正在运行MYSQL 6.0和InnoDB引擎

如果有可能,我可以实现这一目标吗?

2 个答案:

答案 0 :(得分:1)

只要将auto_increment列定义为键(它不必是PRIMARY KEY),就可以拥有auto_increment列。例如:

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;

ALTER TABLE行设置AUTO_INCREMENT的下一个值。)

如果你然后运行以下插入(显然,它没有给IncValue字段赋值):

INSERT INTO auto_inc_test (ID, SomeData) 
VALUES (1, 'test 1'), (2, 'test 2'), (3, 'test3')

你会得到:

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

答案 1 :(得分:0)

尝试以下代码希望这可以帮助您专注于下面代码中的语法部分 - KEY(id) -

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;