...
而MYSQL8.0.30之后增加了一个新特性sql_generate_invisible_primary_key,会在创建表时自动为表生成一个不可见的主键。在开启了此设置项后,此时创建的表已经有一个隐式生成的主键,那么再次通过ALTER ,会在创建表时自动为没有主键的表生成一个不可见的主键。在开启了此设置项后,此时创建的表已经有一个隐式生成的主键,那么再次通过ALTER TABLE尝试显式地添加或修改主键时,MySQL 就会报错Multiple primary key defined,因为它不允许一个表有多个主键。
...