Mye*_*yer 31 mysql innodb foreign-key constraint
如果我在 phpmyadmin 中为表 'photos' 创建外键约束,我后来看到该约束名为 'photos_ibfk_1',下一个约束名为 'photos_ibfk_2',等等。从这里我收集到 [tablename]_ibfk_constraintIndex 是MySQL 中数据库约束的约定。这样对吗?IBFK 代表什么?
尽管外键名称可以是任何名称,但遵循将表名称放在首位的约定实际上是一个很好的做法。
最重要的原因是外键名称在数据库中必须是唯一的(与索引名称相反,索引名称只能在每个表中唯一)。因此,通过遵循此约定,外键名称只需在每个表中是唯一的。
就个人而言,我使用约定[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]`);
Run Code Online (Sandbox Code Playgroud)
显式方法(将导致[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]`);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27427 次 |
| 最近记录: |