You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何添加列索引?迁移代码失效求解决

Laravel迁移主键与索引的问题解析

你的代码$table->string('key')->primary()->index();存在逻辑冗余,主键本身会自动创建唯一索引,额外调用index()完全没必要,甚至可能导致数据库尝试创建重复索引,引发预期外的行为。

正确写法分三种场景:

  • 若要将key设为主键:
$table->string('key')->primary();
  • 若key不是主键,仅需普通索引:
$table->string('key')->index();
  • 若key需唯一约束但不是主键:
$table->string('key')->unique();

Laravel Schema构建器中,primary()方法会自动为字段添加主键约束及对应的唯一索引,重复定义索引属于无效操作,数据库层面也会拒绝创建重复的同类型索引。

内容的提问来源于stack exchange,提问作者Dusan Velickovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:45:54