Это моя база данных (только для примера):
+----------------+---------------+------+-----+---------+---------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------------+------+-----+---------+---------------+
| id | integer | NO |PK | NONE |AUTO_INCREMENT |
| name | string | NO | | NONE | |
| email | string | YES | | NULL | |
| phoneNumber | string | YES | | NULL | |
| password | string | NO | | NONE | |
| maxDistance | integer | NO | | NONE | |
| showMeOnApp | integer | NO | | NONE | |
| created_at | datetime | NO | | NONE | |
| updated_at | datetime | NO | | NONE | |
+----------------+---------------+------+-----+---------+---------------+
Итак, проблема в том, что когда я делаю вставку в phpMyAdmin без добавления какого-либо значения, например, в password
или created_at
, поля, которые должны иметь значение, он все равно вставляет строку, даже если я не установил значение. Почему это? Я думаю, что это должно дать мне ошибку, говоря что-то вроде: Password can't be null, maxDistance can't be null...
Вы знаете? Нечто подобное, что я получаю сейчас, это:
1 row inserted
Warning: #1366 Incorrect integer value: '' for column `databasename`.`users`.`maxDistance` at row 1
Warning: #1366 Incorrect integer value: '' for column `databasename`.`users`.`showMeOnApp` at row 1
Warning: # 1265 Truncated data for column 'created_at' in row 1
Warning: # 1265 Truncated data for column 'updated_at' in row 1
Но вставьте в любом случае.
Так что это мой вопрос, почему он все еще вставляет строку, если я не удовлетворяю все условия?