Когда я пытаюсь сделать значение в стриктоне ИСТИНА , то это показывает ошибку Error Number: 1364 Field 'modified_at' doesn't have a default value", а когда я пытаюсь сделать его ЛОЖНЫ , то это показывает ошибку

Variable 'sql_mode' can't be set to the value of 'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( @@sql_mode'
SELECT GET_LOCK('ad3549572403a9c71bea1109d26f4b48', 300) AS ci_session_lock

Когда значение равно true, все работает, но мне нужно обновить, чтобы сделать ошибку: «Номер ошибки: 1364 Поле «ified_at» не имеет значения по умолчанию »пропало. пожалуйста, помогите мне преодолеть эту ошибку. спасибо

Вот скриншот ошибок:

введите описание изображения здесь

введите описание изображения здесь

0
Abhinay Kumar 9 Дек 2019 в 10:59

2 ответа

Сделайте этот столбец обнуляемым. Потому что здесь updated_at не может быть вызван. Когда вы сохраняете данные строки, вы передаете каждый элемент, но не сохраняете какие-либо данные вified_at. так сделайте этот столбец обнуляемым.

$table->date('modified_at')->nullable();

Если у вас недостаточно данных, то

php artisan migrate:refresh

Если у вас достаточно данных в базе данных и вы не хотите обновлять их, добавьте новый файл миграции. & сделать этот столбец nullable.like

Schema::table('your_table_name', function (Blueprint $table) {
    $table->string('modified_at')->nullable()->change();
});

Подробности https://laravel.com/docs/5.8/migrations#modifying-columns

3
albus_severus 9 Дек 2019 в 11:45

Вы не передаете значение в столбец «modified_at» при вставке данных, поэтому возникает ошибка.

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

(Предполагается, что столбец является полем даты и используется Laravel)

Вам нужно будет использовать модификатор столбца ->nullable()

Миграция:

$table->date('modified_at')->nullable();

.

0
Anuj Shrestha 9 Дек 2019 в 11:12