我试图在引用表中添加引用整数主键的foregin键。我正在尝试创建表的方式面临两个问题,第一个是如果我尝试显式输入外键列的整数长度为11以匹配引用列,它认为我希望此列为首要的关键?我收到错误:
"Incorrect table definition; there can only be one auto column and it must be defined as a key"
即使我明确说明主键是' id'专栏我得到这个错误。以下是我用来产生此错误的代码:
public function up()
{
Schema::create('ip_bans', function(Blueprint $table)
{
$table->increments('id');
$table->string('ip_address', 255);
$table->integer('ban_id', 11);
$table->primary('id');
$table->foreign('ban_id')->references('id')->on('user_bans')->onDelete('set null');
});
}
以下是参考表的架构:
public function up()
{
Schema::create('user_bans', function(Blueprint $table)
{
$table->increments('id');
$table->string('reason');
$table->string('banned_user', 16);
$table->timestamps();
$table->timestamp('ban_end');
$table->foreign('banned_user')->references('username')->on('users')->onDelete('cascade');
});
}
如果我从外键列中删除显式整数长度11,我将无法创建外键,因为列不匹配,因为列的长度为11,参考列位于&#39 ; user_bans'表格是10.我在这里做错了什么或绕过这个错误吗?
答案 0 :(得分:1)