Mysql 数据库主键必须是整数吗?
我总是将MySQL数据库主键视为整数。这是因为主键必须是整数,还是因为在列上设置Mysql 数据库主键必须是整数吗?,mysql,primary-key,Mysql,Primary Key,我总是将MySQL数据库主键视为整数。这是因为主键必须是整数,还是因为在列上设置auto\u increment时易于使用 我在想万一将来我希望我的主键是一个varchar。主键是唯一的。int通过自动递增很容易满足这个条件。如果你将它设置为char,你就必须创建一种方法,在你添加数据时使它唯一。你可以使用varchar,只要你确保每一个都是独一无二的。但这并不理想(更多信息请参见下面的文章链接) 您正在寻找的是自然键,但具有自动递增功能并由RDBMS处理的主键称为代理键,这是首选方法。因此,您
auto\u increment
时易于使用
我在想万一将来我希望我的主键是一个
varchar
。主键是唯一的。int通过自动递增很容易满足这个条件。如果你将它设置为char,你就必须创建一种方法,在你添加数据时使它唯一。你可以使用varchar
,只要你确保每一个都是独一无二的。但这并不理想(更多信息请参见下面的文章链接)
您正在寻找的是自然键,但具有自动递增功能并由RDBMS处理的主键称为代理键,这是首选方法。因此,您需要将其设置为整数
了解更多信息:
这并不意味着我们应该或者不应该使用整数作为主键。它只是意味着主键的选择部分是由底层数据库系统和您希望对其运行的查询驱动的,部分是由您希望用于检索数据的应用程序驱动的。在考虑候选键时,应该考虑所有这些因素。基本上,主键只需要满足两个条件:它必须是非空列,并且必须是唯一的。符合这2个条件的任何类型的列都可以设置为主键。如果主键是多列键,则两列都必须不为null
理论上,您可以使用其他字段作为主键,但整数是最容易管理的,也是可用的最快索引。感谢您提供链接。我现在完全明白了:)