我无法解决这个问题,我有这个创建声明:
create table `roles`
(
`name` varchar(255) not null,
`description` varchar(255) not null,
`created_at` timestamp default 0 not null,
`updated_at` timestamp default 0 not null
) default character set utf8 collate utf8_unicode_ci;
但我收到错误:
Foreign key constraint is incorrectly formed
有人能说出我在这里做错了吗?
仅供参考,我使用的是MySQL。
使用Laravel迁移运行实际语句,这会产生错误:
public function up()
{
Schema::create('roles', function(Blueprint $table)
{
$table->string('name')->unique()->primary();
$table->string('description');
$table->timestamps();
});
}
答案 0 :(得分:2)
我快速浏览了一下这个问题,该问题很好地解释了为什么会出现这种错误:mysql Foreign key constraint is incorrectly formed error
这对你意味着什么?这意味着您的某个外键字段希望使用您的角色表中的主键填充,但两者之间的类型不同。我想在另一个表中你有一个像role_id
这样的列,它是int,bigint,tinyint等。无论哪种方式,你都不应该使用字符串作为主键。