我看网上说primary key 就等于唯一+不为空,而且一个表里只能有一个primary key,但是我在数据库创建表的时候PRIMARY KEY (username,bm_URL),这样不就2个主键了?而且我insert数据的时候 username 有重复'admin',并没有报错啊,怎么解释第一句话呢
username
bm_URL
小伙看你根骨奇佳,潜力无限,来学PHP伐。
你那样写就是联合主键。就可以username重复,但是相同username下,bm_URL不同就可以
primary key的含义是一条记录的唯一标识,类似于身份证的ID。主键可以是一个字段或者多个字段联合组成,如果是一个字段,则不同记录或称不同行的主键不允许重复;如果是多个字段联合组成,则是这些字段的组合不允许相同。所以你的情况只要不是username,bm_URL不同时相同就不会冲突。
一个表里只能有一个主键,主键是自增且不为空的 表里可以有多个唯一,建议你用可视化的phpadmin或者Navicat
多个主键的叫联合主键,也可以称之为联合做主码,你可以想象成商品订单表,记录中用户id是可以重复的,而用户id和订单号一起一定是唯一的。
数据库里的索引(index或者key)并不是针对一列的,因此一个key可以由多列构成(如你这儿设置的username和bm_URL)。因此主键的唯一性指的是它所包含的所有列共同合起来不能重复,你单独username重复是没关系的~
你那样写就是联合主键。就可以username重复,但是相同username下,bm_URL不同就可以
primary key的含义是一条记录的唯一标识,类似于身份证的ID。
主键可以是一个字段或者多个字段联合组成,如果是一个字段,则不同记录或称不同行的主键不允许重复;如果是多个字段联合组成,则是这些字段的组合不允许相同。
所以你的情况只要不是username,bm_URL不同时相同就不会冲突。
一个表里只能有一个主键,主键是自增且不为空的 表里可以有多个唯一,建议你用可视化的phpadmin或者Navicat
多个主键的叫联合主键,也可以称之为联合做主码,你可以想象成商品订单表,记录中用户id是可以重复的,而用户id和订单号一起一定是唯一的。
数据库里的索引(index或者key)并不是针对一列的,因此一个key可以由多列构成(如你这儿设置的username和bm_URL)。因此主键的唯一性指的是它所包含的所有列共同合起来不能重复,你单独username重复是没关系的~