【问题标题】:1292 Truncated incorrect INTEGER value1292 截断不正确的 INTEGER 值
【发布时间】:2017-05-19 19:00:00
【问题描述】:

我没看到什么?我不知道为什么会收到此错误。它甚至不应该要求一个整数。

MariaDB [ams]> describe server_current_status;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(11)     | NO   | PRI | NULL    | auto_increment |
| serverid | varchar(20) | YES  |     | NULL    |                |
| status   | varchar(20) | YES  |     | NULL    |                |
| notify   | varchar(15) | YES  |     | NULL    |                |
| totime   | varchar(20) | YES  |     | NULL    |                |
| fromtime | varchar(20) | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

MariaDB [ams]> UPDATE server_current_status SET notify = 'SOME' AND status = 'DOWN' WHERE serverid = '8';
Query OK, 0 rows affected, 2 warnings (0.04 sec)
Rows matched: 1  Changed: 0  Warnings: 2

MariaDB [ams]> show warnings;
+---------+------+-------------------------------------------+
| Level   | Code | Message                                   |
+---------+------+-------------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: 'SOME' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'SOME'  |
+---------+------+-------------------------------------------+
2 rows in set (0.00 sec)

【问题讨论】:

  • 想通了。忘了逗号。应该有逗号的地方有一个“AND”

标签: mysql sql integer mariadb mysql-error-1292


【解决方案1】:
notify = 'SOME' AND status = 'DOWN'

这是一个布尔表达式。引擎将其读取为类似

notify = ('SOME' AND (status = 'DOWN'))

因此引擎尝试将 'SOME' 转换为布尔值(在 MySQL/MariaDB 中为 01

你可能想要这个:

notify = 'SOME', status = 'DOWN'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2014-12-31
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多