我的表'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_INCREM ENT NOT NULL)
[Doctrine \ DBAL \ Driver \ PDOException] SQLSTATE [42000]:语法错误或访问冲突:1075表定义不正确;只能有一个自动列,必须将其定义为键
[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1075表定义不正确;只能有一个自动列,必须将其定义为键
如何正确进行迁移?我使用的是5.4版
1 回答
你可以这样试试
这是您实现目标的方式之一,我希望这对您有所帮助