Ist*_*med 2 php database-migration laravel laravel-migrations
我的表 '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();
});
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[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 版
你可以这样试试
public function up()
{
DB::statement("ALTER TABLE sales_order_details MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT");
}
public function down()
{
DB::statement("ALTER TABLE sales_order_details MODIFY id INT NOT NULL");
DB::statement("ALTER TABLE sales_order_details DROP PRIMARY KEY");
DB::statement("ALTER TABLE sales_order_details MODIFY id INT NULL");
}
Run Code Online (Sandbox Code Playgroud)
这是您实现目标的方法之一,希望对您有所帮助
归档时间: |
|
查看次数: |
3877 次 |
最近记录: |