【问题标题】:MySQL precision DECIMAL(13,9) for longitude经度的 MySQL 精度 DECIMAL(13,9)
【发布时间】:2018-05-19 19:10:30
【问题描述】:

我正在尝试更新MySQL表中的一行,该列的数据是-122.333351900并且已经存在,所以它的长度与数据类型和长度不匹配没有问题。

但是当我运行一个 UPDATE sql 命令时它失败了

ERROR 1264 (22003): Out of range value for column 'longitude' at row 1

我不明白为什么它错了?它已经插入了这个值,现在当我运行 UPDATE 命令时它会失败并出现错误!

【问题讨论】:

  • 那张桌子上有触发器吗?
  • @juergend 你是我的天使!请把它作为答案,我可以接受....触发器的数据类型错误,因此出现了问题。
  • 对于它的价值,请查看stackoverflow.com/questions/7167604/… 使用 DECIMAL(13,9) 的精度将经度测量到十分之一毫米! :-)
  • 我可以将该值插入该类型的列中。这里肯定有别的东西在起作用。

标签: mysql mysql-error-1064


【解决方案1】:

检查您的表是否有触发器。触发器在表的更新/插入之前或之后运行。

如果它包含错误,则当相关触发器实际上失败时,它看起来像是更新出错了。

【讨论】:

  • 我有一个触发器,存档表中的列具有不同的 DECIMAL 定义
猜你喜欢
  • 1970-01-01
  • 2012-03-03
  • 1970-01-01
  • 2015-08-31
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-15
相关资源
最近更新 更多