MySQL的主键命名挺任性,就这么定了

最近在梳理数据生命周期管理的细节时,发现了一个小问题,那就是MySQL的主键命名策略,似乎会忽略任何形式的自定义命名。

也就意味着你给主键命名为idx_pk_id这种形式,在MySQL里面会统一按照PRIMARY来处理。

当然我们可以在这个基础之上做一些拓展和补充。

首先来复现下问题,我们连接到数据库test,然后创建表test_data2.

mysqlusetest

mysqlcreatetabletest_data2(idint,namevarchar(30));

QueryOK,0rowsaffected(0.05sec)

接着创建一个主键,命名为idx_pk_id,从执行情况来看,MySQL是正常处理了。

mysqlaltertabletest_data2addprimarykeyidx_pk_id(id);

QueryOK,0rowsaffected(0.02sec)

Records:0Duplicates:0Warnings:0

为了进一步对比,我们添加一个唯一性索引(辅助索引),来看看它们的差异。

mysqlaltertabletest_data2adduniquekeyidx_uniq_name(name);

QueryOK,0rowsaffected(0.00sec)

Records:0Duplicates:0Warnings:0

查看主键命名方法1:使用showindexes命令

要查看MySQL索引的信息,使用showindexesfromtest_data2就可以。

mysqlshowindexesfromtest_data2\G

***************************1.row***************************

Table:test_data2

Non_unique:0

Key_name:PRIMARY

Seq_in_index:1

Column_name:id

Collation:A

Cardinality:0

Sub_part:NULL

Packed:NULL

Null:

Index_type:BTREE

Comment:

Index_


转载请注明:http://www.aierlanlan.com/tzrz/5154.html

  • 上一篇文章:
  •   
  • 下一篇文章: