一般错误:1005 无法创建表
Posted
技术标签:
【中文标题】一般错误:1005 无法创建表【英文标题】:General error: 1005 Can't create table 【发布时间】:2016-07-26 00:21:31 【问题描述】:当我运行 php artisan migrate 时,我不断收到此错误:
[照亮\数据库\查询异常] SQLSTATE[HY000]:
binomi
.#sql-3910_c0b
(errno: 150 "外键约束格式不正确") (SQL:alter table users 添加约束users_activity_foreign
foreign 删除级联时的键 (activity
) 引用activity
(id
) [PDO异常] SQLSTATE[HY000]:binomi
.#sql-3910_c0b
(errno: 150 "外键约束格式不正确")
这是我的用户和活动模型的架构,它们是应用中唯一的模型。
用户迁移:
Schema::create('users', function (Blueprint $table)
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->integer('activity');
$table->rememberToken();
$table->timestamps();
);
Schema::table('users', function($table)
$table->foreign('activity')->references('id')->on('activity')->onDelete('cascade');
活动迁移:
Schema::create('activty', function (Blueprint $table)
$table->increments('id');
$table->string('label');
);
【问题讨论】:
注意到“;;”在你的外键行的末尾? 只是输入错误@Duikboot 【参考方案1】:increments()
自动分配为无符号。
所以,请确保您在下面的代码中添加无符号:
$table->integer('activity')->unsigned();
还要检查你是否打错字
【讨论】:
【参考方案2】:将unsigned()
修饰符添加到您的外键列:
Schema::create('users', function (Blueprint $table)
...
$table->integer('activity')->unsigned();
$table->rememberToken();
$table->timestamps();
);
【讨论】:
【参考方案3】:您的活动表有拼写错误,它在您的架构创建中显示activty
。另外,我建议将其重命名为 activities
,除非您只有一个。
【讨论】:
我改名了,什么都没发生 你也回滚了吗?以上是关于一般错误:1005 无法创建表的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 laravel 迁移错误“一般错误:1005 无法创建表”
一般错误:1005 无法创建表 errno:150“外键约束格式不正确”)
“一般错误:1005 无法创建表”使用 Laravel 架构构建和外键
SQLSTATE[HY000]:一般错误:1005 无法创建表 Laravel 8
SQLSTATE [HY000]:一般错误:1005 无法创建表`Data`.`company eligibilities`(errno:150“外键约束形成错误”)