Laravel:如何回滚列唯一

时间:2016-04-08 02:21:33

标签: laravel unique

我的表名是customers列是mail 我试过语法

 public function down()
{
    Schema::table('customers', function (Blueprint $table) {
        $table->dropUnique('mail');
        $table->string('mail',255)->change();
        $table->string('first_name',255)->change();
        $table->string('first_name_reading',255)->change();
        $table->string('last_name',255)->change();
        $table->string('platform',255)->change();
    });
}

但它不起作用。

   [Illuminate\Database\QueryException]
  SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP 'mail'; check that column/key exists (SQL: alter
   table `customers` drop index `mail`)
你能帮我个忙吗? 请,

2 个答案:

答案 0 :(得分:2)

更有趣的是,您可以将数组参数传递给dropUnique函数,Laravel将为您生成正确的名称。试试这个: $table->dropUnique(['mail'])

参考the manual

答案 1 :(得分:1)

打开mysql控制台并获取customers表的正确索引键名称,并将其与代码$table->dropUnique('correct_name');

一起使用
SHOW INDEX FROM customers;