欢迎光临
我们一直在努力

Doctrine\DBAL\Driver\PDOException::(“SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry

在laravel项目中执行php artisan migrate时出现如下错误:

  Exception trace:

  1   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'users_api_token_unique'")
      E:\www\lara0096a\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOStatement.php:119

  2   PDOException::("SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'users_api_token_unique'")
      E:\www\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOStatement.php:117

在网上搜索了一番,有说driver,有说改什么191错误,其实根本原因不在那儿。

以下是执行的脚本:

Schema::table('users', function ($table) {
            if (!Schema::hasColumn('users', 'api_token')) {
                $table->string('api_token',64)->unique()->after('name')->comment('APIToken');
            }
        });

执行php artisan migrate后,提示文初所粘出的错误,经过仔细排查,发现是unique()这儿出错了,因为数据库里原来有数据,因为新增加的字段为空,所以导致Duplicate entry ” for key ‘users_api_token_unique'”)错误。

当我把该数据表的数据清空时,再次执行php artisan migrate便成功了。

因为,更新表字段时要注意带有unique()字段更新,会因为原表有数据而失败。

赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » Doctrine\DBAL\Driver\PDOException::(“SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址