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

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

伊谢尔伦
伊谢尔伦

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

全部回覆(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重複是沒關係的~

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!