Laravel5.4错误,SQLSTATE [42S01]:基本表或视图已存在:1050表“用户”已存在

时间:2019-11-18 07:10:31

标签: mysql laravel laravel-5

规格:

Laravel版本:5.4 PHP版本:7.0.9 作曲者版本1.9.0 XAMP

说明:

在Connection.php第647行中:

SQLSTATE [42S01]:基表或视图已存在:1050表'用户'已存在(SQL:创建表users id int unsigned not null auto_increment主键{{1} } varchar(255)不为空,name varchar(255)不为空,   email varchar(255)不为空,password varchar(100)为空,remember_token时间戳为空,created_at tim   estamp null)默认字符集utf8mb4整理utf8mb4_unicode_ci)

在Connection.php第449行中:

SQLSTATE [42S01]:基表或视图已存在:1050表'用户'已存在

问题: 我已经创建了用户和产品的模型和表格。它成功创建了迁移和表,但是无法在phpmyadmin sql上迁移。

我尝试过的步骤: 我删除了所有数据库并重新创建了它,但仍然给出错误。 我也使用过修补匠,但错误是相同的。

代码:

updated_at

4 个答案:

答案 0 :(得分:1)

  

尝试在 Schema :: create()

之前添加以下条件
if (!Schema::hasTable('users')) {
        Schema::create('users',...)
}

答案 1 :(得分:0)

php artisan migrate:fresh

它将删除所有现有表,而不会回滚或调用迁移方法。

然后,您可以使用再次迁移所有迁移

php artisan migrate

答案 2 :(得分:0)

在您的users表迁移文件中,以up()方法添加此行

    Schema::dropIfExists('users');

    public function up()
    {
     Schema::dropIfExists('users');
     Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
     });
    }

答案 3 :(得分:0)

检查迁移表中是否记录了“用户”表,将其删除,然后使用此artisan命令进行一次迁移

php artisan migrate:refresh --path=/database/migrations/fileName.php

或者使用以下方法重置迁移,然后再次迁移

php artisan migrate:reset