Incorrect table definition; there can be only one auto column and it must be defined as a key
时间: 2024-02-02 18:08:52 浏览: 232
这个错误提示意味着在建表语句中有错误,表中只能包含一个自增列,且该列必须为主键。有两种常规解决方法:一是取消自增约束,使用程序控制序号递增;二是将自增列设为主键。如果不想将自增列设为主键,还可以使用第三种解决方法:给非主键的自增列增加唯一性索引。具体的SQL语句如下:
```sql
-- 取消自增约束,使用程序控制序号递增
CREATE TABLE `example_table` (
`id` int NOT NULL COMMENT '本条记录的序号',
`real_id` int NOT NULL DEFAULT 0 COMMENT '真正的主键',
PRIMARY KEY (`real_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- 将自增列设为主键
CREATE TABLE `example_table` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '本条记录的序号',
`real_id` int NOT NULL COMMENT '真正的主键',
PRIMARY KEY (`real_id`, `id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- 给非主键的自增列增加唯一性索引
CREATE TABLE `example_table` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '本条记录的序号',
`real_id` int NOT NULL DEFAULT 0 COMMENT '真正的主键',
PRIMARY KEY (`real_id`),
UNIQUE KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
```
阅读全文