Синтаксическая ошибка или нарушение прав доступа при вставке записи - PullRequest
1 голос
/ 10 июля 2019

Я получаю следующую ошибку:

SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1067 Недопустимое значение по умолчанию для 'id' (SQL: создать таблицу advertising (id)bigint unsigned не null по умолчанию 'None' первичный ключ auto_increment, slug varchar (50) разбор 'utf8_unicode_ci' не нулевой после id, provider_name varchar (100) collate 'utf8_unicode_ci' null, tracking_code_large text collate 'utf8_unicode_ci'null, tracking_code_medium text collate' utf8_unicode_ci 'null, tracking_code_small text collate' utf8_unicode_ci 'null, active tinyint без знака null по умолчанию' 1 ') набор символов по умолчанию utf8 collate' utf8_unicode_ci ')

и это мой код:

public function up()
    {
        Schema::create('advertising',function(Blueprint $table){
            $table->bigIncrements('id')->unsigned()->default('None')->nullable($value = false)->autoIncrement();
            $table->string('slug',50)->after('id')->collation('utf8_unicode_ci')->nullable($value = false);
            $table->string('provider_name',100)->collation('utf8_unicode_ci')->default(null)->nullable($value = true);
            $table->text('tracking_code_large')->collation('utf8_unicode_ci')->default(null)->nullable($value = true);
            $table->text('tracking_code_medium')->collation('utf8_unicode_ci')->default(null)->nullable($value = true);
            $table->text('tracking_code_small')->collation('utf8_unicode_ci')->default(null)->nullable($value = true);
            $table->tinyInteger('active')->unsigned()->nullable($value = true)->default(1);
        });
    }

Я пытаюсь изменить значение id, но все равно получаю ошибку.

1 Ответ

1 голос
/ 10 июля 2019

Вы не можете иметь значение по умолчанию для столбца с автоинкрементом, также я не понимаю, почему вы хотите, чтобы это значение могло быть обнуляемым.

Измените это:

$table->bigIncrements('id')->unsigned()->default('None')->nullable($value = false)->autoIncrement();

Натолько это:

$table->bigIncrements('id');

bigIncrements уже означает автоинкремент и без знака.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...