gpt4 book ai didi

laravel - 向现有表添加新的自动增量列

转载 作者:行者123 更新时间:2023-12-04 16:44:29 25 4
gpt4 key购买 nike

我的旧迁移是:

Schema::create('item_tag', function (Blueprint $table) {

$table->integer('item_id')->unsigned()->index();
$table->foreign('item_id')->references('id')->on('items')->onDelete('cascade');

$table->integer('tag_id')->unsigned()->index();
$table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');

$table->primary(['item_id', 'tag_id']);

});

现在我想为此添加新的自动增量列并删除旧的主键

我试试这个:
Schema::table('item_tag', function (Blueprint $table) {

$table->unsignedInteger('id', true)->first();

$table->dropPrimary();
$table->primary('id');

});

但是迁移后报错:

SQLSTATE[42000]: Syntax error or access violation: 1068 Multiple primary key defined

最佳答案

在单独的迁移中删除主键并删除 $table->primary('id') .添加 AUTO_INCREMENT column 自动创建主键:

Schema::table('item_tag', function (Blueprint $table) {   
$table->dropPrimary();
});

Schema::table('item_tag', function (Blueprint $table) {
$table->unsignedInteger('id', true)->first();
});

您还可以简化第二次迁移:

Schema::table('item_tag', function (Blueprint $table) {
$table->increments('id')->first();
});

关于laravel - 向现有表添加新的自动增量列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51785604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com