Laravel 迁移展示 "Multiple primary key defined"
Laravel migration show "Multiple primary key defined"
我的 laravel 迁移如下所示
public function up()
{
Schema::create('account_main', function (Blueprint $table) {
$table->increments('user_sn')->primary();
$table->string('member_username', 20);
$table->string('login_password', 255);
$table->integer('login_count')->default('0')->unsigned();
});
}
当我运行 "php artisan migrate"时,显示错误“1068 多个主键”。
谁能帮忙找出问题所在。
您不需要 ->primary()
,因为 ->increments('...')
已经包含它。
就像在 MySQL 中你这样写:
PK INT AUTO_INCREMENT PRIMARY KEY;
PRIMARY KEY(PK)
您声明了两次相同的主键
在Laravel Eloquent ORM
中,类型increments
将自动定义为primary key
。所以不需要使用primary()
方法。
如果列是整数。
$table->increments('user_sn');
如果列是字符串
$table->string('user_sn')->primary();
如果您希望任何其他列是唯一的(而不是主键)
$table->increments('user_sn');
$table->string('member_username', 20)->unique(); // cannot contain duplicate values
我的 laravel 迁移如下所示
public function up()
{
Schema::create('account_main', function (Blueprint $table) {
$table->increments('user_sn')->primary();
$table->string('member_username', 20);
$table->string('login_password', 255);
$table->integer('login_count')->default('0')->unsigned();
});
}
当我运行 "php artisan migrate"时,显示错误“1068 多个主键”。 谁能帮忙找出问题所在。
您不需要 ->primary()
,因为 ->increments('...')
已经包含它。
就像在 MySQL 中你这样写:
PK INT AUTO_INCREMENT PRIMARY KEY;
PRIMARY KEY(PK)
您声明了两次相同的主键
在Laravel Eloquent ORM
中,类型increments
将自动定义为primary key
。所以不需要使用primary()
方法。
如果列是整数。
$table->increments('user_sn');
如果列是字符串
$table->string('user_sn')->primary();
如果您希望任何其他列是唯一的(而不是主键)
$table->increments('user_sn');
$table->string('member_username', 20)->unique(); // cannot contain duplicate values