【发布时间】:2020-04-10 01:23:26
【问题描述】:
这是我的数据库(仅作为示例):
+----------------+---------------+------+-----+---------+---------------+
| 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
但无论如何都要插入。
所以这是我的问题,如果我不满足所有条件,为什么它仍然插入行?
【问题讨论】:
-
从表中删除
default null... -
实际上只是
email和phoneNumber是默认null -
让别人
DEFAULT NOT NULL... -
@Antony Jack 没有这个选项
DEFAULT NOT NULL -
INSERT查询在哪里?
标签: mysql phpmyadmin