MySQL';这是重复的钥匙

MySQL';这是重复的钥匙,mysql,sql,Mysql,Sql,我想知道是否有可能有多个主键。。。。例如 id name description slug 当我有一个自动递增的id列时,我是否可以对重复键执行查询slug。是,您可以创建复合主键或为另一个字段创建索引。是,您可以创建复合主键或为另一个字段创建索引字段。是。您只需要为slug创建一个唯一的索引。是。您只需要为slug创建一个唯一的索引。据我所知,复合主键将使ID字段本身不再唯一。虽然您通常可以,但当您第一次尝试插入id并意外地将其添加为值之一时,您的DB将处于

我想知道是否有可能有多个主键。。。。例如

id       name       description      slug

当我有一个自动递增的
id
列时,我是否可以对重复键执行
查询
slug

是,您可以创建复合主键或为另一个字段创建索引。

是,您可以创建复合主键或为另一个字段创建索引字段。

是。您只需要为slug创建一个唯一的索引。

是。您只需要为slug创建一个唯一的索引。

据我所知,复合主键将使ID字段本身不再唯一。虽然您通常可以,但当您第一次尝试插入id并意外地将其添加为值之一时,您的DB将处于有问题的状态。我认为这不会满足OP的要求。据我所知,复合主键将使id字段本身不再唯一。虽然您通常都可以,但当您第一次尝试插入并意外地将id添加为值之一时,您的DB将处于有问题的状态。我认为这不会满足OP的要求。很好-只要我在插入查询中不包含
id
,它将只检查
slug
(假设
slug
存在)是的。无论如何,您都不应该在插入中包含ID,因为它是一个自动增量。如果你这样做了,你最终会满足我对Ajay回应的评论中潜在的灾难性条件。。。为了提高速度,我相信您可能还需要在slug中添加一个标准索引来进行读取。绿色:一个唯一的索引就足够了,它将用于搜索。@MarkR我不确定它是否会在keycache中结束。很高兴知道,谢谢。很好-只要我在插入查询中不包含
id
,它只会检查
slug
(假设
slug
存在)是的。无论如何,您都不应该在插入中包含ID,因为它是一个自动增量。如果你这样做了,你最终会满足我对Ajay回应的评论中潜在的灾难性条件。。。为了提高速度,我相信您可能还需要在slug中添加一个标准索引来进行读取。绿色:一个唯一的索引就足够了,它将用于搜索。@MarkR我不确定它是否会在keycache中结束。很高兴知道,谢谢。