mysql - 在非主键列上为 Autoiuncrement 列指定默认起始值​​?

标签 mysql auto-increment default-value

我有一个包含很多列的 MySQL 数据库表。主键是 PKEY,其中一个非主键列是 USERID。此列设置为自动增量且不是主键。我还想将默认起始值​​设置为 1000,以便在插入行时它会开始递增为 1000、1001、1002 等...我该如何完成此操作?

谢谢

最佳答案

自增列只能有一个,但可以是任意一个。我假设它当前是您的 PKEY 字段,因此删除它意味着您需要手动创建一个唯一的 PKEY 以将其作为您的主键。

alter table tablename modify PKEY int(11) unsigned NOT NULL;
alter table  tablename add index (USERID);
alter table  tablename modify USERID int(11) unsigned NOT NULL AUTO_INCREMENT;
ALTER TABLE tablename AUTO_INCREMENT = 1000;

一个新的创建看起来像这样:

CREATE TABLE `foo` (
  `PKEY` int(11) unsigned NOT NULL,
 `USERID` int(11) NOT NULL AUTO_INCREMENT,
 PRIMARY KEY (`PKEY`),
 KEY `USERID` (`USERID`)
) ENGINE=InnoDB  AUTO_INCREMENT = 1000;

但是,我建议您将 USERID 设为主键

关于mysql - 在非主键列上为 Autoiuncrement 列指定默认起始值​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22510840/

相关文章:

java - QueryDSL 子查询不起作用

MySql忽略外键错误

具有多个自增列的 Mysql 表

mysql - 在 symfony2 和 mysql 中生成主键

mysql - 如何修复 MySQL 查询别名未知列? 2018年

mysql - 如何将结果添加到 MySQL 存储过程的结果集中?

mysql - 如何在phpMyAdmin中使用自动增量

c++ - 元组作为函数参数中的默认值

c++ - 为通过引用传递的参数分配默认值

java - play.data.Form - 如何最好地填写默认表单值