請告訴我,或者我應該給外鍵命名?MySQL:爲外鍵命名是否重要?
CONSTRAINT constraint_name
FOREIGN KEY foreign_key_name (columns)
REFERENCES parent_table(columns)
ON DELETE action
ON UPDATE action
我可以用它的名字來約束一些操作,但是我可以用外鍵名稱做什麼?請給我一些例子。
請告訴我,或者我應該給外鍵命名?MySQL:爲外鍵命名是否重要?
CONSTRAINT constraint_name
FOREIGN KEY foreign_key_name (columns)
REFERENCES parent_table(columns)
ON DELETE action
ON UPDATE action
我可以用它的名字來約束一些操作,但是我可以用外鍵名稱做什麼?請給我一些例子。
由於文檔解釋:
MySQL的要求對外鍵和引用鍵索引,使 外鍵檢查可以快速,不需要表掃描。 在 引用表中,必須有一個索引,其中外鍵 列按照相同順序列爲第一列。如果 不存在,則會在引用表上自動創建這樣的 索引。如果您創建 另一個可用於強制執行外鍵約束的索引,則此索引可能稍後會自動丟棄。 index_name,如果給出,則按前面所述使用。
換句話說,你所提供的不是一個「外鍵名」,而是一個「(外鍵)索引名」。
命名索引對於跟蹤該索引非常有用。
說實話,雖然我不提供這樣的名字。我更願意在外鍵上聲明一個索引,而不是讓數據庫爲我做。
(注:大多數數據庫時的外鍵聲明不會自動創建索引)
但我的問題是:「我如何使用'foreign_key_name'」,而不是'constarint_name' – Solembum
謝謝,那是我需要的! – Solembum