MySQL:can AUTO_INCREMENT=某个_值;创建表和插入行时是否无效?

MySQL:can AUTO_INCREMENT=某个_值;创建表和插入行时是否无效?,mysql,default-value,auto-increment,Mysql,Default Value,Auto Increment,我刚刚把MYISAM转换成InnoDB。在此之前,我保存了表(请参阅下面的代码,它是由phpMyAdmin自动创建的),删除了它,将引擎更改为InnoDB,然后再次创建了它 CREATE TABLE IF NOT EXISTS `orders` ( `orderid` int(11) unsigned NOT NULL AUTO_INCREMENT, `memberid` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=In

我刚刚把MYISAM转换成InnoDB。在此之前,我保存了表(请参阅下面的代码,它是由phpMyAdmin自动创建的),删除了它,将引擎更改为InnoDB,然后再次创建了它

CREATE TABLE IF NOT EXISTS `orders` (
  `orderid` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `memberid` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=34;
---并在创建后立即添加一些行

我的问题是关于自动增量=34。据我所知,在插入新行时,34将是表中orderid的下一个值。在创建新表和添加行时,自动增量可以无效吗?还是强烈建议使用自动增量?
谢谢。

您可以删除
自动增量=34
部分,它将在表中的最高值之后启动,或者空表为1

没有为AUTO_INCREMENT列指定值,因此MySQL 自动分配序列号。您还可以显式地 为列指定NULL或0以生成序列号


您可以删除
自动增量=34
部分,它将在表中的最高值之后启动,或在空表中为1

没有为AUTO_INCREMENT列指定值,因此MySQL 自动分配序列号。您还可以显式地 为列指定NULL或0以生成序列号


1。对于MemberID2,应该使用int(10)而不是varchar。为什么要取消自动增量?memberid实际上是一个字符串,不过还是要谢谢你。自动增量呢。。。我不想作废它,我只是想删除“AUTO_INCREMENT=34”。“
orderid
int(11)unsigned NOT NULL AUTO_INCREMENT”保持不变。是的,该表中有数据。最后一个(也是最大的)orderid值是33。这就是为什么自动增量=34。您是否建议保留它,否则索引可能会混乱?或者,MySQL会找到最大的一个,然后从下一个开始?请参阅zonbiehunter的答案(是的,因为如果您有其他使用相同id的表,您可能会弄乱一些数据)1。对于MemberID2,应该使用int(10)而不是varchar。为什么要取消自动增量?memberid实际上是一个字符串,不过还是要谢谢你。自动增量呢。。。我不想作废它,我只是想删除“AUTO_INCREMENT=34”。“
orderid
int(11)unsigned NOT NULL AUTO_INCREMENT”保持不变。是的,该表中有数据。最后一个(也是最大的)orderid值是33。这就是为什么自动增量=34。您是否建议保留它,否则索引可能会混乱?或者,MySQL会找到最大的一个,然后从下一个开始?请参阅zonbiehunter答案(是的,因为如果您有其他使用相同id的表,您可能会弄乱一些数据)+1。众所周知,mysql在进行表转储时包含自动增量。查看更多信息,否则只需按照此解决方案的说明执行,并将其从表架构中删除。+1。众所周知,mysql在进行表转储时包含自动增量。查看更多信息,否则只需按照此解决方案的说明执行,并将其从表架构中删除即可。