第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

外鍵可以引用非唯一索引嗎?

外鍵可以引用非唯一索引嗎?

繁華開滿天機 2019-12-03 15:53:54
我認(rèn)為外鍵意味著單行必須引用單行,但是我正在查看某些表,但事實并非如此。表1在表2的列2上有一個具有外鍵約束的列1,但是在表2中有很多記錄在列2中具有相同的值。在column2上也有非唯一索引。這是什么意思?外鍵約束是否僅表示至少一條記錄必須存在,且在正確的列中具有正確的值?我認(rèn)為這意味著必須有一個這樣的記錄(不確定空值是否適合圖片,但目前我對此不太擔(dān)心)。更新:顯然,此行為特定于MySQL,這是我所使用的,但我沒有在最初的問題中提及它。
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗 獲得超8個贊

從MySQL文檔:


InnoDB允許外鍵約束引用非唯一鍵。這是對標(biāo)準(zhǔn)SQL的InnoDB擴展。


但是,出于實際原因,要避免在引用表的非唯一列上使用外鍵。也就是說,在這種情況下“ ON DELETE CASCADE”的語義應(yīng)該是什么?


該文檔進(jìn)一步建議:


對非唯一鍵或包含NULL值的鍵的外鍵引用的處理沒有很好的定義(...)。建議您使用僅引用UNIQUE(包括PRIMARY)和NOT NULL鍵的外鍵。


查看完整回答
反對 回復(fù) 2019-12-03
?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗 獲得超6個贊

您的分析是正確的;鍵不必是唯一的,約束將作用于匹配行的集合。通常這不是有用的行為,但是可能會出現(xiàn)您想要的情況。


查看完整回答
反對 回復(fù) 2019-12-03
  • 3 回答
  • 0 關(guān)注
  • 791 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號