mysql - 自增Id和key问题(MySQL)

标签 mysql sql mysql-error-1075

我有 table ,我试着添加

`id` int(11) NOT NULL auto_increment,

到 table 上,但我得到了

ERROR 1075: Incorrect table definition; There can only be one auto column and it must be defined as a key

所以问题是:

  1. 我如何找到哪一个是关键列
  2. 我可以毫无问题地更改它并添加新的 ID 字段(使用自动增量)吗?

最佳答案

如果表已经创建,使用 ALTER:

ALTER TABLE `table` ADD COLUMN `id` INT(11) NOT NULL AUTO_INCREMENT, 
DROP PRIMARY KEY, 
ADD PRIMARY KEY (`id`)

如果正在创建表,则必须将 auto_increment 设置为主键:

CREATE TABLE IF NOT EXISTS `database`.`table` (
`id`INT(11) NOT NULL AUTO_INCREMENT ,
`a` VARCHAR(45) NULL ,
`b` VARCHAR(255) NULL ,
`c` VARCHAR(45) NULL ,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci

关于mysql - 自增Id和key问题(MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5318611/

相关文章:

java - 在 Debian (MySQL) 上使用午餐 Java 应用程序(Spring、Hibernate)时出现问题

mysql - 是否可以有一个允许重复的 AUTO_INCREMENT 列?

java - jdbc-java-方法查询

php - 选择不工作;

mysql - 无法获取所有结果以显示在 4 表查询中

mysql - 编写 SQL 查询来获取给定列表中的每个项目

sql - 脚本问题Transact-SQL

php - 为什么 MySQL 查询在我想要显示所有记录时却忽略了记录?

sql - 仅用牛奶、鸡蛋、黄油、面粉、糖和盐,您能做出多少种食谱?

mysql - 删除 MySQL 中的主键