当我将表迁移到数据库时,会出现此错误
SQLSTATE [42S01]:基表或视图已存在:1050表'users' 已经存在(SQL:创建表
users
(id
int unsigned not auto_increment主键为空,body
长文本不为空,url
varchar(255)null,user_id
int unsigned不为null,commentable_id
int unsigned not null,commentable_type
varchar(191)不为null,created_a t
时间戳为空,updated_at
时间戳为空)默认 字符集utf8mb4整理utf8mb4_unicode_ci)在Connection.php第449行中: SQLSTATE [42S01]:基本表或视图已存在:1050表 “用户”已经存在
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
if(!Schema::hasTable('users')){
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table-> string('name');
$table-> string('email')->unique();
$table-> string('password');
$table->rememberToken();
$table->timestamps();
});
}
Schema::table('users', function(Blueprint $table){
$table -> string('first_name') -> nullabel();
$table -> string('middle_name') -> nullabel();
$table -> string('last_name') -> nullabel();
$table -> string('city') -> nullabel();
$table -> integer('role') -> unsigned();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
我从数据库中删除了所有表,然后尝试但给出了相同的错误
答案 0 :(得分:0)
尝试分为两个迁移或一次添加所有字段:
const enumConstants = [
'FIRST',
'SECOND',
'THIRD'
];
const temp = {};
for (const constant of enumConstants) {
temp[constant] = constant;
}
const PlaceEnum = Object.freeze(temp);
console.log(PlaceEnum.FIRST);
// Or, in one line
const PlaceEnum2 = Object.freeze(enumConstants.reduce((o, c) => { o[c] = c; return o; }, {}));
console.log(PlaceEnum2.FIRST);
请注意:您还拼写了可为空的错误。
答案 1 :(得分:0)
可能您正在使用Laravel 5.5,因此您必须进行“ php artisan migration” ,而无需在启动方法中编辑您的 AppServiceProvider.php 文件。
因此,我建议您使用“ php artisan tinker” 从数据库中删除表,然后“ Schema :: drop('users')(并使用q退出)” 强>。
此后,您必须编辑“ AppServiceProvider.php” 文件,因此请使用此链接来帮助您:https://laravel-news.com/laravel-5-4-key-too-long-error
当您编辑完文件后,现在可以进行“ php artisan migration:rollback” ,然后执行“ php artisan migration”
与我合作!