gpt4 book ai didi

php - Laravel 迁移 - 如何将 `id` 字段更改为主要字段并在以后自动递增

转载 作者:行者123 更新时间:2023-12-02 20:44:37 27 4
gpt4 key购买 nike

我的表“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();

});
}

我收到以下错误:

[照亮\数据库\查询异常] SQLSTATE[42000]:语法错误或访问冲突:1075 表定义不正确 启动;只能有一个自动列,并且必须将其定义为键 (SQL: ALTER TABLE sales_order_details CHANGE id id INT UNSIGNED AUTO_INCREM ENT 不为空)

[学说\DBAL\驱动程序\PDOException] SQLSTATE[42000]:语法错误或访问冲突:1075 表定义不正确 启动; auto列只能有一个,必须定义为key

[PDO异常] SQLSTATE[42000]:语法错误或访问冲突:1075 表定义不正确 启动; auto列只能有一个,必须定义为key

如何正确迁移?我使用的是 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");
}

这是您实现目标的方法之一,希望对您有所帮助

关于php - Laravel 迁移 - 如何将 `id` 字段更改为主要字段并在以后自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44903533/

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