早上写了个语句 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 11:49:03 +08:00
错误提示必须是 key,不是 PRIMARY KEY 吧
|
2
Xia 2020-12-12 12:23:00 +08:00
什么场景会用到非主键要自增
|
3
littlepython OP @Xia 只是自己随便写的 发现了这个问题
|
4
littlepython OP @hbolive 额,要有 key 才能自增?
|
5
Renzheng 2020-12-12 12:49:46 +08:00 3
|
6
dorothyREN 2020-12-12 23:05:04 +08:00
pg 就香了,定义个序列,想在哪用就在哪用
|
7
neoblackcap 2020-12-13 14:52:40 +08:00
根据以前书上的说法,InnoDB 采取存储为 B 树,那么最好就是用整型的作为主键,自不自增没所谓。
然后哪怕主键是整型,你完全可以定义一个逻辑主键,并使用字符串作为该栏的数据类型。 |