Почему MySQL принимает значение NULL для полей, не допускающих значение NULLPhp

Кемеровские программисты php общаются здесь
Anonymous
Почему MySQL принимает значение NULL для полей, не допускающих значение NULL

Сообщение Anonymous »

Я изучаю Laravel 5.1 с помощью серии статей по основам laracast, и в эпизоде ​​7, посвященном миграции, я построил следующую таблицу с миграцией:

Код: Выделить всё

public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->timestamps();
$table->timestamp('published_at');
});
}
как сказано в эпизоде ​​10, когда я добавляю статью в базу данных через форму, в которой нет поля для отметки времени опубликованного_at, то это не должно работать и должно быть через исключение, что ограничение Not Null не удалось Но невероятно, что статья добавлена ​​в таблицу.
Когда я смотрю на таблицу в структуре phpmyadmin для столбца опубликованного_at, она не проверяет нулевое значение , поэтому он не должен принимать значение null. Правда ли это?

Но потом я заметил, что при миграции устанавливается значение по умолчанию 0000-00-00 00:00:00 для опубликованного_at столбец. Почему?! и Отменяет ли это условие NULL?
Затем я попытался установить значение по умолчанию равным none, но значение NULL все равно не проверяется . и я снова попытался добавить статью без полейPublish_at. Но снова в таблицу была добавлена ​​новая строка со значением опубликованного_at, установленным в 0000-00-00 00:00:00.
есть какие-нибудь объяснения?

Я использую сервер Wamp с MySQL v5.6.17, php v5.5.12< /п>

Подробнее здесь: https://stackoverflow.com/questions/342 ... ble-fields

Вернуться в «Php»