MySql - 索引名称的别名(PRIMARY)

时间:2015-01-29 02:37:32

标签: mysql

有没有办法为索引/主键设置别名?换句话说,MySql的主键名为“PRIMARY”,我想将其命名为其他名称,以使其与我的软件兼容。我知道主键必须命名为“PRIMARY”(请参阅​​herehere进行讨论)。所以我想,如果有办法为主键创建一个别名,那将解决我的问题。

注意:我不是在谈论列名,而是索引的实际名称,当您运行命令“show indexes from”命令时,将显示在“Key_name”列中。

2/29/2015编辑以回应RandomSeed评论: 例如,PRIMARY KEY列是ithkey。在SQLServer中,索引名称为“ITHKEY”,因此我们的代码使用“ITHKEY”作为索引提示。但是,当然,这对我当前的MySql设置不起作用,因为ithkey的索引/主键名为“PRIMARY”,而不是“ITHKEY”。我想,我可以改变我的代码,在索引提示中引用“PRIMARY”,只是试图避免这种情况。

1 个答案:

答案 0 :(得分:2)

从功能角度来看(就MySQL而言),PRIMARY键只是UNIQUE NOT NULL约束 *

因此,您可以将PRIMAY KEY替换为您可以根据需要命名的UNIQUE NOT NULL索引。

如果您的应用程序还需要PRIMARY KEY(或者如果没有主键的表的想法让您生病),您可以将两个密钥保留在表中,这会使相应的开销增加一倍, CPU时间和存储空间的条款(所以这是一个坏主意)。

MySQL没有索引别名。


* 如果没有为表定义PRIMARY KEY,MySQL会找到第一个UNIQUE索引,其中所有关键列都是NOT NULL InnoDB将其用作聚集索引(reference)。