我的表'sales_order_details'有一个'id'字段,类型为整型'int(10)',默认值为0
。我需要在迁移中将其更改为主键自增。
我尝试了以下方法:
public function up()
{
Schema::table('sales_order_details', function (Blueprint $table){
$table->integer('id')->default(NULL)->change();
$table->increments('id')->change();
});
}
public function down()
{
Schema::table('sales_order_details', function (Blueprint $table){
$table->dropPrimary('id')->change();
});
}
我遇到了以下错误:
[Illuminate\Database\QueryException] SQLSTATE[42000]: 语法错误或访问冲突:1075 不正确的表定义;只能有一个自动列,并且必须定义为键 (SQL: ALTER TABLE sales_order_details CHANGE id id INT UNSIGNED AUTO_INCREMENT NOT NULL)
[Doctrine\DBAL\Driver\PDOException] SQLSTATE[42000]: 语法错误或访问冲突:1075 不正确的表定义;只能有一个自动列,并且必须定义为键
[PDOException] SQLSTATE[42000]: 语法错误或访问冲突:1075 不正确的表定义;只能有一个自动列,并且必须定义为键
如何使迁移正确?我正在使用版本5.4。
default
和increments
,会出现问题吗? - Istiaque Ahmed