早上写了个语句 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 ![]() |
6 dorothyREN 2020-12-12 23:05:04 +08:00 pg 就香了,定义个序列,想在哪用就在哪用 |
7 neoblackcap 2020-12-13 14:52:40 +08:00 根据以前书上的说法,InnoDB 采取存储为 B 树,那么最好就是用整型的作为主键,自不自增没所谓。 然后哪怕主键是整型,你完全可以定义一个逻辑主键,并使用字符串作为该栏的数据类型。 |