执行画面保存操作,出了系统错误。查询了log
Data truncation: Truncated incorrect INTEGER value: '';
数据库用的是mysql5.6
但是我改为前一阵用的 mysql5.5 就没有出现这个错误。
就奇怪了,因为这俩数据库数据是一样的。
百度了一下,可能与数据库模式有关系,于是在mysql命令行 查询数据库模式&执行报错sql
5.5
查询数据库模式
mysql> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
执行报错sql(仿照真实sql写的,真实sql是insert语句)
mysql> SELECT CONVERT('', UNSIGNED);
+-----------------------+
| CONVERT('', UNSIGNED) |
+-----------------------+
| 0 |
+-----------------------+
1 row in set, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+---------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: '' |
+---------+------+---------------------------------------+
1 row in set (0.00 sec)
5.6
查询数据库模式
mysql> select @@sql_mode;
+------------------------+
| @@sql_mode |
+------------------------+
| NO_ENGINE_SUBSTITUTION |
+------------------------+
执行报错sql(仿照真实sql写的,真实sql是insert语句)
mysql> SELECT CONVERT('', UNSIGNED);
+-----------------------+
| CONVERT('', UNSIGNED) |
+-----------------------+
| 0 |
+-----------------------+
1 row in set, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+---------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: '' |
+---------+------+---------------------------------------+
1 row in set (0.00 sec)
网上查询说,
sql_mode设置为空或仅NO_ENGINE_SUBSTITUTION都是宽松无敌模式
而命令行执行sql确实也都报的警告。
系统错误的根本原因是数据库数据错误。
但是
为什么工程连接mysql5.5就能插入数据。连接mysql5.6就报系统错误呢???求大神解答!