Я совершенно новый для баз данных и SQL.
У меня есть столбец с меткой NOT NULL
.
Когда я забываю дать значение этому столбцу при выполнении INSERT, он вставляет в этот столбец значение 0.
Есть ли что-нибудь, что я могу сделать, чтобы вернуть ошибку вместо изменения NULL
на 0?
Вы хотите посмотреть конфигурацию SQL_MODE
. Это позволяет вам определить, как строгая MySQL обрабатывает такие вещи. По умолчанию это довольно мягко, что не то, что я обычно хочу. Это также зависит от типа данных, особенно с Датами он по умолчанию менее оптимален.
Я лично обычно ходил за STRICT_ALL_TABLES
.
См. руководство по MySQL (5.0) здесь:
Для этого есть две возможные причины:
INT NOT NULL
и отбрасывает NULL
в INT
, что приводит к 0
Вторая ситуация, похоже, имеет место здесь, очевидно. Если вы хотите получить ошибку, вы можете изменить SQL_MODE
на строгую. Другая возможность заключается в том, чтобы выполнить проверку ввода в вашей прогаме, а не оставлять ее в SQL.
Я думаю, у вас есть значение DEFAULT для этого столбца