有没有办法为索引/主键设置别名?换句话说,MySql的主键名为“PRIMARY”,我想将其命名为其他名称,以使其与我的软件兼容.我知道主键必须命名为“PRIMARY”(有关讨论,请参阅here和here).所以我想,如果有办法为主键创建别名,那将解决我的问题.
注意:我不是在谈论列名,而是索引的实际名称,当您运行命令“show indexes from”命令时,将显示在“Key_name”列中.
2015年2月29日编辑以回应RandomSeed评论:
例如,PRIMARY KEY列是ithkey.在SQLServer中,索引名称为“ITHKEY”,因此我们的代码使用“ITHKEY”作为索引提示.但是,当然,这对我当前的MySql设置不起作用,因为ithkey的索引/主键名为“PRIMARY”,而不是“ITHKEY”.我想,我可以改变我的代码,在索引提示中引用“PRIMARY”,只是试图避免这种情况.
解决方法:
从功能的角度来看(就MySQL而言),PRIMARY键只是一个UNIQUE NOT NULL约束*.
因此,您可以使用您可以根据需要命名的UNIQUE NOT NULL索引替换PRIMAY KEY.
如果您的应用程序还需要PRIMARY KEY(或者如果没有主键的表的想法让您生病),您可以将两个密钥保留在表中,这会在CPU时间和存储方面使相应的开销翻倍.空间(所以这是一个坏主意).
MySQL没有索引别名这样的东西.
*如果没有为表定义PRIMARY KEY,MySQL将找到第一个UNIQUE索引,其中所有键列都是NOT NULL,而InnoDB将它用作聚簇索引(reference).
标签:mysql
来源: https://codeday.me/bug/20190708/1402145.html