Mysql

‘ibfk’ 在 MySQL 中代表什麼?

  • July 18, 2019

如果我在 phpmyadmin 中為表“photos”創建一個外鍵約束,我稍後會看到該約束名為“photos_ibfk_1”,下一個約束名為“photos_ibfk_2”,依此類推。由此我收集到

$$ tablename $$_ibfk_constraintIndex 是 MySQL 中 DB 約束的約定。它是否正確?IBFK 代表什麼?

innodb 外鍵。這只是簡寫的命名約定。您可以將其稱為 asdfqwerty,並且該名稱仍然有效。

儘管外鍵名稱可以是任何名稱,但遵循將表名稱放在首位的約定實際上是一個好習慣。

最重要的原因是外鍵名稱在數據庫中必須是唯一的(與索引名稱相反,索引名稱只能在每個表中唯一)。因此,通過遵循這個約定,外鍵名稱只需要在每個表中是唯一的。

就個人而言,我使用約定[table_name]_fk_[field_name]

為了命名您的外鍵,您必須明確地拼出表上的約束,而不僅僅是外鍵。

簡單的方法(自動命名,會產生[table_name]_ibfk_[index]):

ALTER TABLE `[table_name]`
 ADD FOREIGN KEY (`[field_name]`)
   REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);

顯式方法(將導致[table_name]_fk_[field_name]):

ALTER TABLE `[table_name]`
 ADD CONSTRAINT `[table_name]_fk_[field_name]`
   FOREIGN KEY (`[field_name]`)
   REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);

引用自:https://dba.stackexchange.com/questions/15530