我想在我的MYSQL数据库中创建一个字段INT(11)
,其值为1000,并在每个INSERT
之后递增1。
警告:这不是主要关键
数据库正在运行MYSQL 6.0和InnoDB引擎
如果有可能,我可以实现这一目标吗?
答案 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;