Почему Mysql позволяет мне вставлять записи без полей, которые имеют ограничение NOT NULL?

Я создал таблицу с некоторыми атрибутами, которые имеют ограничение NOT NULL, тогда я попробовал инструкцию INSERT INTO, указав значения только для полей, у которых нет ограничения NOT NULL, но инструкция все еще работает. Не должно ли оно работать и давать ошибку?

CREATE TABLE ciao(
 Id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
 Nome VARCHAR(30) NOT NULL,
 Cognome VARCHAR(30) NOT NULL,
 Nickname VARCHAR(30)
); 

INSERT INTO ciao(Nickname) VALUES ('prova');
1 ответ

Он вставляет пустую строку в качестве значения по умолчанию для столбцов, которые вы не предоставили. Это умолчание не указано в вашем заявлении о создании, поэтому он, вероятно, был создан кем-то другим. Если вы запустите свое создание и вставьте его в чистую БД, это не сработает.

licensed under cc by-sa 3.0 with attribution.