我想INT(11)
在我的 MYSQL 数据库中创建一个字段,该字段的值从 1000 开始,每次递增 1 INSERT
。
警告:这不是主键
数据库运行 MYSQL 6.0 和 InnoDB 引擎
如果可能的话,我谁能做到这一点?
我想INT(11)
在我的 MYSQL 数据库中创建一个字段,该字段的值从 1000 开始,每次递增 1 INSERT
。
警告:这不是主键
数据库运行 MYSQL 6.0 和 InnoDB 引擎
如果可能的话,我谁能做到这一点?
你可以有一个 auto_increment 列,只要它被定义为一个键(它不必是 a PRIMARY KEY
)。例如:
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
试试下面的代码,希望这能帮助你专注于下面代码中的语法部分——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;