【问题标题】:Laravel 5: Add new value in my column migrationLaravel 5:在我的列迁移中添加新值
【发布时间】:2019-12-06 07:24:09
【问题描述】:

我有现有的表和列。我的一列名为 status,数据类型是 enum('0','1'),默认值为 0。现在我想在我的 status 中添加更多值em> 列。看起来像这个 enum('0','1','2','3'),默认值为 0。

我的迁移

public function up()
    {
        //
         DB::statement("ALTER TABLE purchase_requisitions CHANGE status ENUM('0', '1', '2','3','4','5')")->default('0')->comment('0 = Unproccessed 1 = Processed');
    }

当我迁移时出现错误

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error i
  n your SQL syntax; check the manual that corresponds to your MySQL server v
  ersion for the right syntax to use near '('0', '1', '2','3','4','5')' at li
  ne 1

更新:

Schema::table('purchase_requisitions', function (Blueprint $table) {
            $table->enum('status')->default('0')->comment('0 = Unproccessed 1 = Processed')->change();
        });

问题:如何使用迁移来实现这一点?

【问题讨论】:

    标签: php laravel-5 database-migration


    【解决方案1】:

    这里有两个问题。首先,您更改枚举值的 SQL 不正确。应该是:

    ALTER TABLE purchase_requisitions MODIFY COLUMN status ENUM('0', '1', '2','3','4','5')
    

    其次,您不能将方法链接到DB::statement 的输出,只能链接到列声明。如果注释/默认值与以前相同,则可以不进行更新。如果没有,您可以执行以下操作:

    DB::statement("ALTER TABLE purchase_requisitions MODIFY COLUMN status ENUM('0', '1', '2','3','4','5') DEFAULT '0' COMMENT '0 = Unproccessed 1 = Processed'"); 
    

    【讨论】:

    • 所以你说是这样的?我会更新我的帖子。
    • 如果我理解正确,您没有添加新值?
    • 您需要更新您的DB:statement 以运行我提供的 SQL 示例,我用完整示例更新了答案。
    • 所以每次我想在特定列中添加一个新值时,我必须使用 MODIFY COLUMN?我有一个问题,$table->....的目的是什么?
    • 是的,很遗憾,laravel 没有修改枚举列的助手。
    【解决方案2】:

    在@atymic 的帮助下,他的代码中有一些错误,但我设法修复了它。应该是这样的。

    Schema::table('purchase_requisitions', function (Blueprint $table) {
            DB::statement("ALTER TABLE purchase_requisitions MODIFY COLUMN status ENUM('0', '1', '2','3','4','5') DEFAULT '0'  COMMENT '0 = Unproccessed 1 = Processed'");
            });
    

    【讨论】:

      猜你喜欢
      • 2016-09-25
      • 2013-05-23
      • 2021-05-13
      • 2017-02-17
      • 2017-12-02
      • 2023-04-05
      • 2015-09-22
      • 2015-09-02
      相关资源
      最近更新 更多