你可以在MySql中使用自动增量而不是主键

Nat*_*her 3 mysql sql nhibernate primary-key auto-increment

我使用GUID作为我所有其他表的主键,但我有一个需要增加数字的要求.我尝试使用自动增量在表中创建一个字段,但MySql抱怨它需要是主键.

我的应用程序使用MySql 5,nhibernate作为ORM.

我想到的可能的解决方案是:

  • 将主键更改为自动增量字段,但仍将Id作为GUID,以便我的应用程序的其余部分保持一致.

  • 使用GUID和自动增量字段创建复合键.

我现在的想法是倾向于复合的关键想法.

编辑:行ID(主键)是当前的GUID.我想添加一个自动增量的INT字段,以便它是人类可读的.我只是不想放弃使用GUID作为主键的应用程序中的当前标准.

jab*_*jab 9

GUID值旨在在表甚至数据库中是唯一的,因此,使auto_increment列为主索引并为GUID创建UNIQUE索引


cle*_*tus 5

我会倾向于另一种方式.

为什么?因为创建一个复合键给下一个人的印象,可以在表中使用相同的GUID两次,但序列号不同.