我甚至可以使用abc
作为DATETIME
列的值。
为什么它根本没有进行验证?
更新
关于phpmyadmin如何获得警告:
通过阅读其代码,我发现它来自show warnings
,但我无法在命令行MySQL中重现它。
mysql> UPDATE `test`.`uu3` SET `id` = 'x',dt='ab1c' WHERE `uu3`.`id` =3 AND `uu3`.`id2` =4;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
mysql> SHOW WARNINGS;
Empty set (0.00 sec)
mysql> desc `test`.`uu3`;
+-------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| id | int(10) unsigned | NO | | NULL | |
| id2 | int(10) unsigned | NO | | NULL | |
| dt | datetime | NO | | NULL | |
+-------+------------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
答案 0 :(得分:0)
不,它做了正确的验证。
当我尝试将值“abc
”添加到字段“date_time
”(其数据类型为“DATETIME
”)时,我收到此错误“警告:#1264超出范围值,已针对第1行“”列'date_time'进行了调整。
但是,该行已成功插入,但该字段的值自动更改为“0000-00-00 0000:00:00
”。
我正在使用phpMyAdmin的3.3.10.2版本。
希望它有所帮助。