【问题标题】:Error when renaming Table Column in Laravel migration在 Laravel 迁移中重命名表列时出错
【发布时间】:2020-06-22 10:17:23
【问题描述】:

当我尝试使用以下代码重命名列时出现错误:

class RenameProductsColumns extends Migration
{
public function up()
{
    Schema::table('products', function (Blueprint $table) {
        $table->renameColumn("name-ar", "name_ar");
        $table->renameColumn("description-ar", "description_ar");
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('products', function (Blueprint $table) {
        $table->renameColumn("name_ar", 'name-ar');
        $table->renameColumn('description_ar', 'description-ar');
    });
 }
}

错误是:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“-ar name_ar VARCHAR(255) NOT NULL”附近使用正确的语法(SQL:ALTER TABLE products CHANGE name-ar name_ar VARCHAR(255) NOT NULL)

如何重命名字段?

【问题讨论】:

  • 试试这个 $table->renameColumn("`name-ar`", "`name_ar`");

标签: mysql database laravel migration


【解决方案1】:

您必须将列名用破折号括起来,因为生成的 SQL 会尝试像减号一样使用它

例如$table->renameColumn("`name-ar`", "`name_ar`");

【讨论】:

    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2018-07-18
    • 2015-11-25
    • 2018-12-10
    • 2019-08-24
    • 2015-07-06
    相关资源
    最近更新 更多