찾다

 >  Q&A  >  본문

关于mysql primary key的解释

我看网上说primary key 就等于唯一+不为空,而且一个表里只能有一个primary key,但是我在数据库创建表的时候PRIMARY KEY (username,bm_URL),这样不就2个主键了?而且我insert数据的时候 username 有重复'admin',并没有报错啊,怎么解释第一句话呢

伊谢尔伦伊谢尔伦2782일 전1034

모든 응답(5)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-17 13:37:33

    你那样写就是联合主键。就可以username重复,但是相同username下,bm_URL不同就可以

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 13:37:33

    primary key的含义是一条记录的唯一标识,类似于身份证的ID。
    主键可以是一个字段或者多个字段联合组成,如果是一个字段,则不同记录或称不同行的主键不允许重复;如果是多个字段联合组成,则是这些字段的组合不允许相同。
    所以你的情况只要不是username,bm_URL不同时相同就不会冲突。

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:37:33

    一个表里只能有一个主键,主键是自增且不为空的 表里可以有多个唯一,建议你用可视化的phpadmin或者Navicat

    회신하다
    0
  • 迷茫

    迷茫2017-04-17 13:37:33

    多个主键的叫联合主键,也可以称之为联合做主码,你可以想象成商品订单表,记录中用户id是可以重复的,而用户id和订单号一起一定是唯一的。

    회신하다
    0
  • 黄舟

    黄舟2017-04-17 13:37:33

    数据库里的索引(index或者key)并不是针对一列的,因此一个key可以由多列构成(如你这儿设置的username和bm_URL)。因此主键的唯一性指的是它所包含的所有列共同合起来不能重复,你单独username重复是没关系的~

    회신하다
    0
  • 취소회신하다