我的服务器提供商已经用MariaDB取代了MYSQL,这似乎有所不同 . 我运行“SHOW GLOBAL VARIABLES LIKE'%version%';”时获得的这台服务器上的信息是:
Variable_name值
protocol_version 10
slave_type_conversions
版本5.5.58-MariaDB
version_comment MariaDB服务器
version_compile_machine x86_64
version_compile_os Linux
SQL语句“INSERT INTO years( Year
)VALUES('test');”使用Aria或MyISAM引擎将0插入smallint字段
在我的本地开发系统上运行“SHOW GLOBAL VARIABLES LIKE'%version%';”我得到:
Variable_name值
innodb_version 5.6.21
protocol_version 10
slave_type_conversions
版本5.6.21-log
version_comment MySQL社区服务器(GPL)
version_compile_machine x86_64
version_compile_os Win64
相同的SQL语句“INSERT INTO years( Year
)VALUES('test');”使用MYISAM引擎会产生错误代码:1366“第1行第'年'列的错误整数值'test'”这是我所期待的并且依赖于上 .
任何人都可以阐明为什么会这样吗?
1 回答
让我说一个正确的答案 . 发生这种情况的原因有两个,一个是Type conversion,主要原因是SQL Modes配置部分中的STRICT_MODE配置 .
Strict Mode 说明