首頁  >  問答  >  主體

关于mysql primary key的解释

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

伊谢尔伦伊谢尔伦2742 天前1001

全部回覆(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
  • 取消回覆