mysql数据库插入数据时出现 1264 Out of range value for column 错误的解决办法

mysql数据库插入数据时出现 1264 Out of range value for column 错误的解决办法

分析原因

新版本的MySQL对字段的严格检查。 通常在Linux下安装完mysql后,默认的sql_mode值是空,在这种情形下mysql执行的是一种不严格的检查,如果要插入的字段长度超过列定义的长度,那么mysql不会终止操作,而是会自动截断后面的字符继续插入操作!但是在windows下面却不会这样。而是直接终止报出上面的错误!

解决方法

1、修改my.ini,将

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

//改为

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

重新启动MySQL。
2、在执行sql语句前,先执行以下语句:

mysql_query("set sql_mode=''");

3.修改mysql数据库表结构适应数据长度,最好的办法是修改配置文件。这样。平台差距就不会太大了!

经常使用的sql_mode值如下表:

Sql_mode值描述
ANSI更改语法和行为,使其更符合标准SQL。
STRICT_TRANS_TABLES如果不能将给定的值插入到事务表中,则放弃该语句,对于非事务表,如果值出现在单行语句或多行语句的第一行,则放弃该语句。
TRADITIONALMake mysql的行为像“传统”SQL数据库系统。该模式的简单描述是当在列中插入不正确的值时“给出错误而不是警告”。注释:一旦发现错误立即放弃INSERT/UPDATE。如果你使用非事务存储引擎,这种方式不是你想要的,因为出现错误前进行的数据更改不会“滚动”,结果是更新“只进行了一部分”。

说明:如果把sql_mode的值设置成后面的两个值(即严格模式),那么当在列中插入或更新不正确的值时,mysql将会给出错误,并且放弃insert/update操作。在我们的一般应用中建议使用这两种模式,而不是使用默认的空或ANSI模式。
但是需要注意到问题是,如果数据库运行在严格模式下,并且你的存储引擎不支持事务,那么有数据不一致的风险存在,如:一组sql中有两个dml语句,如果后面的一个出现了问题,但是前面的已经操作成功,那么mysql并不能回滚前面的操作,因此说设置sql_mode需要应用人员权衡各种得失,从而得到一个合适的选择

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个维护版本,主要是bug修复: ** Bug * [MNG-4840] - Prerequisites is not working on m3 * [MNG-4913] - [regression] User properties override equally named POM properties of transitive dependencies * [MNG-4915] - Versions in pom.xml are not checked for invalid characters * [MNG-4918] - MavenProject#clone() doubles active profiles * [MNG-4919] - Plugin execution contributed by lifecycle mapping gets lost when same goal is bound multiple times * [MNG-4923] - [regression] java.lang.ClassNotFoundException: org.apache.maven.artifact.ArtifactStatus * [MNG-4925] - Mismanagement of container lookup realm can cause type incompatibilities for plugins looking up components by string * [MNG-4933] - With a resource directory as . maven raise an java.lang.StringIndexOutOfBoundsException:217 * [MNG-4941] - PluginDescriptorBuilder doesn't populate expression/default-value fields for mojo parameters * [MNG-4952] - [regression] RELEASE field of repository metadata is not updated upon repeated deployments * [MNG-4955] - [regression] Outdated remote snapshots are preferred over locally installed snapshots * [MNG-4960] - [regression] Make-like reactor mode does not build selected project when resuming from one of its prerequisites * [MNG-4966] - Preserve double slashes in the scm connection url - identifies absolute repository paths for mercurial ** Improvement * [MNG-4912] - Use of raw type should be Comparable<ArtifactVersion> * [MNG-4916] - Poor ProjectBuilder.build performance for projects with unresolvable extension plugins * [MNG-4922] - ExecutionEvent give on the exception encountered (when having mojoFailed) * [MNG-4926] - ExecutionEvent give on the exception encountered (when having projectFailed , forkedProjectFailed) * [MNG-4944] - Include JRE vendor in version info * [MNG-4950] - Javadoc improvements to DefaultSettingsWriter/Reader * [MNG-4953] - Issue a warning when a system-scope dependency refers to the project basedir ** New Feature * [MNG-4936] - Allow to better monitor and adjust a Maven build during CI * [MNG-4937] - Allow the platform scripts to avoid loading mavenrc content ** Task * [MNG-4945] - Remove mergeId from public POM * [MNG-4957] - Emit validation warning when project version uses irregular SNAPSHOT version string * [MNG-4959] - Update default plugin versions
回答: 当出现"Data truncation: Out of range value for column 'stock' at row 1"的错误,意味着在向数据库添加或修改数据,操作的值超出了该字段的取值范围。根据引用\[2\]中的信息,不同类型的字段有不同的取值范围。对于整数类型的字段,比如INT,其取值范围是从负的最小值到正的最大值。如果操作的值超出了这个范围,就会出现超出范围的错误。另外,根据引用\[3\]中的信息,如果字段的长度声明不正确,也可能导致超出范围的错误。因此,当出现"Data truncation: Out of range value for column 'stock' at row 1"的错误,您需要检查操作的值是否在字段的取值范围内,并确保字段的长度声明正确。 #### 引用[.reference_title] - *1* [Spring 最全入门教程详解](https://blog.csdn.net/weixin_44863237/article/details/131489611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Data truncation: Out of range value for column ‘xxx‘ at row 1](https://blog.csdn.net/weixin_45399695/article/details/124265006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Data truncation: Out of range value for column `xxx`(MySQL的字段长度和取值范围踩坑)](https://blog.csdn.net/zgdwxp/article/details/100988201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值