亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么刪除了主鍵primary之后唯一約束會變成主鍵約束?

為什么刪除了主鍵primary之后唯一約束會變成主鍵約束?
還有為什么刪除不了?必須要有約束們

正在回答

2 回答

主鍵約束和唯一約束都具有唯一標識數據表記錄的作用,數據表記錄千千萬萬,必然存在標志唯一性的字段,主鍵約束存在時,主鍵起標識唯一性作用,主鍵刪除后,從一個或多個唯一約束中順序選擇其中一個作為唯一標識,

0 回復 有任何疑惑可以回復我~
#1

qq_微笑王子_0 提問者

但是我新建一張表帶有兩個唯一主鍵和一個主鍵約束,刪除了主鍵之后只剩下兩個唯一主鍵
2016-12-20 回復 有任何疑惑可以回復我~
#2

qq_微笑王子_0 提問者

非常感謝!
2016-12-20 回復 有任何疑惑可以回復我~

刪除主鍵約束后,你沒有主鍵約束,但是有唯一約束,數據庫自動把唯一改成主鍵約束,因為主鍵是不能沒有的,

把唯一約束的那列中的數據,加一個null,然后在把主鍵刪掉,看看這時唯一性約束還能變成主鍵約束嗎?估計不能刪除主鍵了,

所以說主鍵約束和唯一約束的區別都是數據唯一性和完整性,但是主鍵約束不允許為空,而唯一約束允許為空,在唯一約束允許為NULL的情況下,就不能轉換為主鍵了


3 回復 有任何疑惑可以回復我~
#1

qq_微笑王子_0 提問者

萬分感謝
2017-01-01 回復 有任何疑惑可以回復我~
#2

無敵小哥兒

"因為主鍵是不能沒有的"??你的意思時每張表必須有主鍵??可是前邊視頻講的不是需要auto_increment或者要引索時可以添加一個主鍵。沒有主鍵的表也可以正確創建啊,我覺得這里應該是跟引索有關吧,但具體的也不是特別清楚。。
2017-01-26 回復 有任何疑惑可以回復我~
#3

慕粉2137351520 回復 無敵小哥兒

你要明白索引是用來提高查找效率的,代價是降低插入效率。 所以如果有一張表,數據量很大,而且有頻繁的插入操作,但查找操作較少,這種表你就可以考慮不添加索引,這樣可以保證插入的效率,但代價是查找操作可能會變得非常慢。 主鍵除了具有索引的功能之外還具有保證唯一性的功能,你不能在一張表里添加有重復主鍵的多條記錄,這是對數據完整性/一致性的一種保證,如果你需要這個功能,那么就需要主鍵,否則可以考慮不要。
2017-05-09 回復 有任何疑惑可以回復我~
#4

慕蓋茨9974910 回復 無敵小哥兒

同樣的疑問,我建立的一個表有主鍵約束和唯一約束,我刪除主鍵約束后,唯一約束自動變為主鍵約束,但這種情況下,我再想刪除主鍵約束就刪除不了,提示Can't DROP 'PRIMARY'; check that column/key exists
2017-12-26 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消
與MySQL的零距離接觸
  • 參與學習       396743    人
  • 解答問題       3497    個

本課程涵蓋全部MySQL數據庫的基礎,學習MySQL數據庫的基礎知識

進入課程

為什么刪除了主鍵primary之后唯一約束會變成主鍵約束?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號