如何从特定点开始自动递增?
Posted
技术标签:
【中文标题】如何从特定点开始自动递增?【英文标题】:How do I start auto increment from a specific point? 【发布时间】:2011-03-29 01:37:42 【问题描述】:CREATE TABLE `batchinfo` (
`rowid` int(11) NOT NULL AUTO_INCREMENT,
`datapath` mediumtext,
`analysistime` varchar(50) DEFAULT NULL,
`reporttime` varchar(50) DEFAULT NULL,
`lastcalib` varchar(50) DEFAULT NULL,
`analystname` varchar(150) DEFAULT NULL,
`reportname` varchar(150) DEFAULT NULL,
`batchstate` varchar(150) DEFAULT NULL,
`instrument` varchar(20) DEFAULT NULL,
PRIMARY KEY (`rowid`),
UNIQUE KEY `rowid_UNIQUE` (`rowid`)
) ENGINE=InnoDB AUTO_INCREMENT=15034 DEFAULT CHARSET=latin1
我想从 20000 年开始自动递增。
我该怎么做?我可以编辑表格一些如何从 20000 开始递增吗?
【问题讨论】:
【参考方案1】:查看查询的最后一行:
AUTO_INCREMENT=15034
改成:
AUTO_INCREMENT=20000
就这么简单! :)
CREATE TABLE `batchinfo` (
`rowid` int(11) NOT NULL AUTO_INCREMENT,
`datapath` mediumtext,
`analysistime` varchar(50) DEFAULT NULL,
`reporttime` varchar(50) DEFAULT NULL,
`lastcalib` varchar(50) DEFAULT NULL,
`analystname` varchar(150) DEFAULT NULL,
`reportname` varchar(150) DEFAULT NULL,
`batchstate` varchar(150) DEFAULT NULL,
`instrument` varchar(20) DEFAULT NULL,
PRIMARY KEY (`rowid`),
UNIQUE KEY `rowid_UNIQUE` (`rowid`)
) ENGINE=InnoDB AUTO_INCREMENT=20000 DEFAULT CHARSET=latin1;
INSERT INTO batchinfo (datapath) values('test');
SELECT * FROM batchinfo;
【讨论】:
【参考方案2】:我不知道如何从CREATE
声明中做到这一点,但之后你可以这样做:
ALTER TABLE `batchinfo` AUTO_INCREMENT = 20000;
【讨论】:
【参考方案3】:ALTER TABLE batchinfo AUTO_INCREMENT = 20000;
另见Autoincrement
【讨论】:
mysql重启后,auto_increment值发生变化:(以上是关于如何从特定点开始自动递增?的主要内容,如果未能解决你的问题,请参考以下文章