关于mysql primary key的解释
伊谢尔伦
伊谢尔伦 2017-04-17 13:35:33
0
5
1040

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

Antworte allen(5)
Peter_Zhu

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

洪涛

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

Peter_Zhu

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

迷茫

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

黄舟

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage