早上写了个语句 id 自增但不是主键一直报错
语句:create table student(id INT AUTO_INCREMENT, name VARCHAR(200) NOT NULL) ENGINE=INNODB CHARSET=utf8;
报错是:1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
mysql 版本是 8.0.20-0ubuntu0.20.04.1
网上查询有的说可以 有的不可以,有点迷
1
hbolive 2020 年 12 月 12 日
错误提示必须是 key,不是 PRIMARY KEY 吧
|
2
Xia 2020 年 12 月 12 日
什么场景会用到非主键要自增
|
3
littlepython OP @Xia 只是自己随便写的 发现了这个问题
|
4
littlepython OP @hbolive 额,要有 key 才能自增?
|
5
Renzheng 2020 年 12 月 12 日 |
6
dorothyREN 2020 年 12 月 12 日
pg 就香了,定义个序列,想在哪用就在哪用
|
7
neoblackcap 2020 年 12 月 13 日
根据以前书上的说法,InnoDB 采取存储为 B 树,那么最好就是用整型的作为主键,自不自增没所谓。
然后哪怕主键是整型,你完全可以定义一个逻辑主键,并使用字符串作为该栏的数据类型。 |